Changeset 4fd3c04 for commands.c


Ignore:
Timestamp:
Oct 12, 2017, 8:28:02 PM (7 years ago)
Author:
Anders Kaseorg <andersk@mit.edu>
Branches:
master
Children:
a882637
Parents:
ee6b30f
git-author:
Anders Kaseorg <andersk@mit.edu> (10/06/17 21:27:09)
git-committer:
Anders Kaseorg <andersk@mit.edu> (10/12/17 20:28:02)
Message:
Remove AIM support

This code has received almost no security attention, and anyway, AIM
is shutting down on December 15, 2017.

https://aimemories.tumblr.com/post/166091776077/aimemories

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
File:
1 edited

Legend:

Unmodified
Added
Removed
  • commands.c

    r4511ac3 r4fd3c04  
    122122              "      Send to the specified opcode\n"),
    123123
    124   OWLCMD_ARGS("aimwrite", owl_command_aimwrite, OWL_CTX_INTERACTIVE,
    125               "send an AIM message",
    126               "aimwrite <user> [-m <message...>]",
    127               "Send an aim message to a user.\n\n"
    128               "The following options are available:\n\n"
    129               "-m    Specifies a message to send without prompting.\n"),
    130 
    131124  OWLCMD_ARGS("loopwrite", owl_command_loopwrite, OWL_CTX_INTERACTIVE,
    132125              "send a loopback message",
     
    234227              "Execute the BarnOwl commands in <filename>.\n"),
    235228
    236   OWLCMD_ARGS("aim", owl_command_aim, OWL_CTX_INTERACTIVE,
    237               "AIM specific commands",
    238               "aim search <email>",
    239               ""),
    240 
    241229  OWLCMD_ARGS("addbuddy", owl_command_addbuddy, OWL_CTX_INTERACTIVE,
    242230              "add a buddy to a buddylist",
    243231              "addbuddy <protocol> <screenname>",
    244               "Add the named buddy to your buddylist.  <protocol> can be aim or zephyr\n"),
     232              "Add the named buddy to your buddylist.  <protocol> must be zephyr\n"),
    245233
    246234  OWLCMD_ARGS("delbuddy", owl_command_delbuddy, OWL_CTX_INTERACTIVE,
    247235              "delete a buddy from a buddylist",
    248236              "delbuddy <protocol> <screenname>",
    249               "Delete the named buddy from your buddylist.  <protocol> can be aim or zephyr\n"),
    250 
    251   OWLCMD_ARGS("join", owl_command_join, OWL_CTX_INTERACTIVE,
    252               "join a chat group",
    253               "join aim <groupname> [exchange]",
    254               "Join the AIM chatroom with 'groupname'.\n"),
     237              "Delete the named buddy from your buddylist.  <protocol> must be zephyr\n"),
    255238
    256239  OWLCMD_ARGS("smartzpunt", owl_command_smartzpunt, OWL_CTX_INTERACTIVE,
     
    308291              "znol [-f file]",
    309292              "Print a znol-style listing of users logged in"),
    310 
    311   OWLCMD_VOID("alist", owl_command_alist, OWL_CTX_INTERACTIVE,
    312               "List AIM users logged in",
    313               "alist",
    314               "Print a listing of AIM users logged in"),
    315293
    316294  OWLCMD_VOID("blist", owl_command_blist, OWL_CTX_INTERACTIVE,
     
    470448              "use the default.\n"),
    471449
    472   OWLCMD_ARGS("aaway", owl_command_aaway, OWL_CTX_INTERACTIVE,
    473               "Set, enable or disable AIM away message",
    474               "aaway [ on | off | toggle ]\n"
    475               "aaway <message>",
    476               "Turn on or off the AIM away message.  If 'message' is\n"
    477               "specified turn on aaway with that message, otherwise\n"
    478               "use the default.\n"),
    479 
    480450  OWLCMD_ARGS("away", owl_command_away, OWL_CTX_INTERACTIVE,
    481451              "Set, enable or disable all away messages",
     
    486456              "otherwise use the default.\n"
    487457              "\n"
    488               "SEE ALSO: aaway, zaway"),
     458              "SEE ALSO: zaway"),
    489459
    490460  OWLCMD_ARGS("flush-logs", owl_command_flushlogs, OWL_CTX_ANY,
     
    548518              "    body       -  message body\n"
    549519              "    hostname   -  hostname of sending host\n"
    550               "    type       -  message type (zephyr, aim, admin)\n"
     520              "    type       -  message type (zephyr, admin)\n"
    551521              "    direction  -  either 'in' 'out' or 'none'\n"
    552522              "    login      -  either 'login' 'logout' or 'none'\n"
     
    772742          "no argument, it makes search highlighting inactive."),
    773743
    774   OWLCMD_ARGS("aimlogin", owl_command_aimlogin, OWL_CTX_ANY,
    775               "login to an AIM account",
    776               "aimlogin <screenname> [<password>]\n",
    777               ""),
    778 
    779   OWLCMD_ARGS("aimlogout", owl_command_aimlogout, OWL_CTX_ANY,
    780               "logout from AIM",
    781               "aimlogout\n",
    782               ""),
    783 
    784744  OWLCMD_ARGS("error", owl_command_error, OWL_CTX_ANY,
    785745              "Display an error message",
     
    11081068    }
    11091069  }
    1110   owl_function_buddylist(0, 1, file);
     1070  owl_function_buddylist(1, file);
    11111071  return(NULL);
    11121072}
    11131073
    1114 void owl_command_alist(void)
    1115 {
    1116   owl_function_buddylist(1, 0, NULL);
    1117 }
    1118 
    11191074void owl_command_blist(void)
    11201075{
    1121   owl_function_buddylist(1, 1, NULL);
     1076  owl_function_buddylist(1, NULL);
    11221077}
    11231078
     
    11351090{
    11361091  owl_function_makemsg("BarnOwl version %s", version);
    1137 }
    1138 
    1139 char *owl_command_aim(int argc, const char *const *argv, const char *buff)
    1140 {
    1141   if (argc<2) {
    1142     owl_function_makemsg("not enough arguments to aim command");
    1143     return(NULL);
    1144   }
    1145 
    1146   if (!strcmp(argv[1], "search")) {
    1147     if (argc!=3) {
    1148       owl_function_makemsg("not enough arguments to aim search command");
    1149       return(NULL);
    1150     }
    1151     owl_aim_search(argv[2]);
    1152   } else {
    1153     owl_function_makemsg("unknown subcommand '%s' for aim command", argv[1]);
    1154     return(NULL);
    1155   }
    1156   return(NULL);
    11571092}
    11581093
     
    11641099  }
    11651100
    1166   if (!strcasecmp(argv[1], "aim")) {
    1167     if (!owl_global_is_aimloggedin(&g)) {
    1168       owl_function_makemsg("addbuddy: You must be logged into aim to use this command.");
    1169       return(NULL);
    1170     }
    1171     /*
    1172     owl_function_makemsg("This function is not yet operational.  Stay tuned.");
    1173     return(NULL);
    1174     */
    1175     owl_aim_addbuddy(argv[2]);
    1176     owl_function_makemsg("%s added as AIM buddy for %s", argv[2], owl_global_get_aim_screenname(&g));
    1177   } else if (!strcasecmp(argv[1], "zephyr")) {
     1101  if (!strcasecmp(argv[1], "zephyr")) {
    11781102    owl_zephyr_addbuddy(argv[2]);
    11791103    owl_function_makemsg("%s added as zephyr buddy", argv[2]);
    11801104  } else {
    1181     owl_function_makemsg("addbuddy: currently the only supported protocols are 'zephyr' and 'aim'");
     1105    owl_function_makemsg("addbuddy: currently the only supported protocol is 'zephyr'");
    11821106  }
    11831107
     
    11921116  }
    11931117
    1194   if (!strcasecmp(argv[1], "aim")) {
    1195     if (!owl_global_is_aimloggedin(&g)) {
    1196       owl_function_makemsg("delbuddy: You must be logged into aim to use this command.");
    1197       return(NULL);
    1198     }
    1199     owl_aim_delbuddy(argv[2]);
    1200     owl_function_makemsg("%s deleted as AIM buddy for %s", argv[2], owl_global_get_aim_screenname(&g));
    1201   } else if (!strcasecmp(argv[1], "zephyr")) {
     1118  if (!strcasecmp(argv[1], "zephyr")) {
    12021119    owl_zephyr_delbuddy(argv[2]);
    12031120    owl_function_makemsg("%s deleted as zephyr buddy", argv[2]);
    12041121  } else {
    1205     owl_function_makemsg("delbuddy: currently the only supported protocols are 'zephyr' and 'aim'");
    1206   }
    1207 
    1208   return(NULL);
    1209 }
    1210 
    1211 char *owl_command_join(int argc, const char *const *argv, const char *buff)
    1212 {
    1213   if (argc!=3 && argc!=4) {
    1214     owl_function_makemsg("usage: join <protocol> <buddyname> [exchange]");
    1215     return(NULL);
    1216   }
    1217 
    1218   if (!strcasecmp(argv[1], "aim")) {
    1219     if (!owl_global_is_aimloggedin(&g)) {
    1220       owl_function_makemsg("join aim: You must be logged into aim to use this command.");
    1221       return(NULL);
    1222     }
    1223     if (argc==3) {
    1224       owl_aim_chat_join(argv[2], 4);
    1225     } else {
    1226       owl_aim_chat_join(argv[2], atoi(argv[3]));
    1227     }
    1228     /* owl_function_makemsg("%s deleted as AIM buddy for %s", argv[2], owl_global_get_aim_screenname(&g)); */
    1229   } else {
    1230     owl_function_makemsg("join: currently the only supported protocol is 'aim'");
    1231   }
     1122    owl_function_makemsg("delbuddy: currently the only supported protocol is 'zephyr'");
     1123  }
     1124
    12321125  return(NULL);
    12331126}
     
    15391432
    15401433
    1541 char *owl_command_aaway(int argc, const char *const *argv, const char *buff)
    1542 {
    1543   if ((argc==1) ||
    1544       ((argc==2) && !strcmp(argv[1], "on"))) {
    1545     owl_global_set_aaway_msg(&g, owl_global_get_aaway_msg_default(&g));
    1546     owl_function_aaway_on();
    1547     return NULL;
    1548   }
    1549 
    1550   if (argc==2 && !strcmp(argv[1], "off")) {
    1551     owl_function_aaway_off();
    1552     return NULL;
    1553   }
    1554 
    1555   if (argc==2 && !strcmp(argv[1], "toggle")) {
    1556     owl_function_aaway_toggle();
    1557     return NULL;
    1558   }
    1559 
    1560   buff = skiptokens(buff, 1);
    1561   owl_global_set_aaway_msg(&g, buff);
    1562   owl_function_aaway_on();
    1563   return NULL;
    1564 }
    1565 
    1566 
    15671434char *owl_command_away(int argc, const char *const *argv, const char *buff)
    15681435{
     
    15731440      (argc == 2 && !strcmp(argv[1], "on"))) {
    15741441    away_off = false;
    1575     owl_global_set_aaway_msg(&g, owl_global_get_aaway_msg_default(&g));
    15761442    owl_global_set_zaway_msg(&g, owl_global_get_zaway_msg_default(&g));
    15771443  } else if (argc == 2 && !strcmp(argv[1], "off")) {
     
    15851451
    15861452  if (away_off) {
    1587     owl_function_aaway_off();
    15881453    owl_function_zaway_off();
    15891454    owl_perlconfig_perl_call_norv("BarnOwl::Hooks::_away_off", 0, NULL);
    15901455    owl_function_makemsg("Away messages off.");
    15911456  } else if (message != NULL) {
    1592     owl_global_set_aaway_msg(&g, message);
    15931457    owl_global_set_zaway_msg(&g, message);
    1594     owl_function_aaway_on();
    15951458    owl_function_zaway_on();
    15961459    owl_perlconfig_perl_call_norv("BarnOwl::Hooks::_away_on", 1, &message);
    15971460    owl_function_makemsg("Away messages set (%s).", message);
    15981461  } else {
    1599     owl_function_aaway_on();
    16001462    owl_function_zaway_on();
    16011463    owl_perlconfig_perl_call_norv("BarnOwl::Hooks::_away_on", 0, NULL);
     
    20381900  }
    20391901  return(NULL);
    2040 }
    2041 
    2042 char *owl_command_aimwrite(int argc, const char *const *argv, const char *buff)
    2043 {
    2044   char *message = NULL;
    2045   GString *recip = g_string_new("");
    2046   const char *const *myargv;
    2047   int myargc;
    2048  
    2049   if (!owl_global_is_aimloggedin(&g)) {
    2050     owl_function_error("You are not logged in to AIM.");
    2051     goto err;
    2052   }
    2053 
    2054   /* Skip argv[0]. */
    2055   myargv = argv+1;
    2056   myargc = argc-1;
    2057   while (myargc) {
    2058     if (!strcmp(myargv[0], "-m")) {
    2059       if (myargc <= 1) {
    2060         owl_function_error("No message specified.");
    2061         goto err;
    2062       }
    2063       /* Once we have -m, gobble up everything else on the line */
    2064       myargv++;
    2065       myargc--;
    2066       message = g_strjoinv(" ", (char**)myargv);
    2067       break;
    2068     } else {
    2069       /* squish arguments together to make one screenname w/o spaces for now */
    2070       g_string_append(recip, myargv[0]);
    2071       myargv++;
    2072       myargc--;
    2073     }
    2074   }
    2075 
    2076   if (recip->str[0] == '\0') {
    2077     owl_function_error("No recipient specified");
    2078     goto err;
    2079   }
    2080 
    2081   if (message != NULL)
    2082     owl_function_aimwrite(recip->str, message, false);
    2083   else
    2084     owl_function_aimwrite_setup(recip->str);
    2085  err:
    2086   g_string_free(recip, true);
    2087   g_free(message);
    2088   return NULL;
    20891902}
    20901903
     
    26542467}
    26552468
    2656 char *owl_command_aimlogin(int argc, const char *const *argv, const char *buff)
    2657 {
    2658   if ((argc<2) || (argc>3)) {
    2659     owl_function_makemsg("Wrong number of arguments to aimlogin command");
    2660     return(NULL);
    2661   }
    2662 
    2663   /* if we get two arguments, ask for the password */
    2664   if (argc==2) {
    2665     owl_editwin *e = owl_function_start_password("AIM Password: ");
    2666     owl_editwin_set_cbdata(e, g_strdup(argv[1]), g_free);
    2667     owl_editwin_set_callback(e, owl_callback_aimlogin);
    2668     return(NULL);
    2669   } else {
    2670     owl_function_aimlogin(argv[1], argv[2]);
    2671   }
    2672 
    2673   /* this is a test */
    2674   return(NULL);
    2675 }
    2676 
    2677 char *owl_command_aimlogout(int argc, const char *const *argv, const char *buff)
    2678 {
    2679   /* clear the buddylist */
    2680   owl_buddylist_clear(owl_global_get_buddylist(&g));
    2681 
    2682   owl_aim_logout();
    2683   return(NULL);
    2684 }
    2685 
    26862469CALLER_OWN char *owl_command_getstyle(int argc, const char *const *argv, const char *buff)
    26872470{
Note: See TracChangeset for help on using the changeset viewer.