]> andersk Git - libfaim.git/blobdiff - utils/faimtest/commands.c
- Sat May 26 01:37:39 PDT 2001
[libfaim.git] / utils / faimtest / commands.c
index baab3cb16d02d256c537a30308a666875df25e4b..ec57c8225b88937e088c675976e3087290a5eeaa 100644 (file)
@@ -8,6 +8,10 @@ static int cmd_quit(char *arg);
 static int cmd_login(char *arg);
 static int cmd_logout(char *arg);
 static int cmd_connlist(char *arg);
+static int cmd_goodday(char *arg);
+static int cmd_warn(char *arg);
+static int cmd_anonwarn(char *arg);
+static int cmd_sendmsg(char *arg);
 
 struct {
   char *name;
@@ -17,8 +21,12 @@ struct {
   { "help", cmd_help, "Help"},
   { "quit", cmd_quit, "Quit"},
   { "login", cmd_login, "Log into AIM"},
-  { "logout", cmd_login, "Log out of AIM"},
+  { "logout", cmd_logout, "Log out of AIM"},
   { "connlist", cmd_connlist, "List open connections"},
+  { "goodday", cmd_goodday, "Say goodday to arg"},
+  { "warn", cmd_warn, "Warn arg"},
+  { "anonwarn", cmd_anonwarn, "Anonymously warn arg"},
+  { "sendmsg", cmd_sendmsg, "Send arg[0] bytes to arg[1]"},
   { (char *)NULL, (Function *)NULL, (char *)NULL }
 };
 
@@ -40,7 +48,7 @@ static char *stripwhite (char *string)
   return s;
 }
 
-static char *cmdgenerator(char *text, int state)
+static char *cmdgenerator(const char *text, int state)
 {
   static int list_index, len;
   char *name;
@@ -60,7 +68,7 @@ static char *cmdgenerator(char *text, int state)
   return (char *)NULL;
 }
 
-static char **cmdcomplete(char *text, int start, int end)
+static char **cmdcomplete(const char *text, int start, int end)
 {
   char **matches;
 
@@ -120,7 +128,7 @@ static int cmdexec(char *line)
   return cmd(word);
 }
 
-static void fullline(void
+static void fullline(char *x
 {
   char *stripped;
 
@@ -141,7 +149,7 @@ void cmd_init(void)
 
   printf("Welcome to faimtest.\n");
 
-  rl_callback_handler_install("faimtest>", fullline);
+  rl_callback_handler_install("faimtest> ", fullline);
 
   return;
 }
@@ -198,7 +206,6 @@ static int cmd_logout(char *arg)
 
 static int cmd_connlist(char *arg)
 {
-  extern struct aim_session_t aimsess;
   struct aim_conn_t *cur;
 
   printf("Open connections:\n");
@@ -209,6 +216,63 @@ static int cmd_connlist(char *arg)
   return 0;
 }
 
+static int cmd_goodday(char *arg)
+{
+  if (arg && strlen(arg) && (strlen(arg) < MAXSNLEN))
+    aim_send_im(&aimsess, aim_getconn_type(&aimsess, AIM_CONN_TYPE_BOS), arg, AIM_IMFLAGS_ACK, "Good day to you too.");
+  else
+    printf("no one to say hello to!\n");
+
+  return 0;
+}
+
+static int cmd_warn(char *arg)
+{
+  if (arg && strlen(arg) && (strlen(arg) < MAXSNLEN))
+    aim_send_warning(&aimsess, aim_getconn_type(&aimsess, AIM_CONN_TYPE_BOS), arg, 0);
+  else
+    printf("no one to warn!\n");
+
+  return 0;
+}
+
+static int cmd_anonwarn(char *arg)
+{
+  if (arg && strlen(arg) && (strlen(arg) < MAXSNLEN))
+    aim_send_warning(&aimsess, aim_getconn_type(&aimsess, AIM_CONN_TYPE_BOS), arg, AIM_WARN_ANON);
+  else
+    printf("no one to anonwarn!\n");
+
+  return 0;
+}
+
+static int cmd_sendmsg(char *arg)
+{
+  int len = 0, z;
+  char sn[MAXSNLEN+1], *newbuf = NULL;
+
+  if ((sscanf(arg, "%d %32s", &len, sn) != 2) || 
+      (len >= 10000) || (strlen(sn) > MAXSNLEN)) {
+    printf("invalid args\n");
+    return 0;
+  }
+
+  printf("sending %d bytes to %s\n", len, sn);
+
+  if (!(newbuf = malloc(len+1)))
+    return 0;
+
+  for (z = 0; z < len; z++)
+    newbuf[z] = (z % 10)+0x30;
+  newbuf[len] = '\0';
+
+  aim_send_im(&aimsess, aim_getconn_type(&aimsess, AIM_CONN_TYPE_BOS), sn, AIM_IMFLAGS_ACK, newbuf);
+
+  free(newbuf);
+
+  return 0;
+}
+
 void cmd_uninit(void)
 {
 
This page took 0.036701 seconds and 4 git commands to generate.