plugins/tcl/tcl_cmds.c

changeset 6737
3b760998dc30
parent 6700
02bb89cd563e
child 6746
6f05900c1a8d
equal deleted inserted replaced
6736:e1b498d35f06 6737:3b760998dc30
74 } 74 }
75 75
76 int tcl_cmd_account(ClientData unused, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) 76 int tcl_cmd_account(ClientData unused, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
77 { 77 {
78 Tcl_Obj *result = Tcl_GetObjResult(interp), *list, *elem; 78 Tcl_Obj *result = Tcl_GetObjResult(interp), *list, *elem;
79 char *cmds[] = { "alias", "connect", "connection", "disconnect", "find", 79 char *cmds[] = { "alias", "connect", "connection", "disconnect", "find",
80 "handle", "isconnected", "list", "protocol", "username", 80 "handle", "isconnected", "list", "public_ip",
81 NULL }; 81 "protocol", "username", NULL };
82 enum { CMD_ACCOUNT_ALIAS, CMD_ACCOUNT_CONNECT, CMD_ACCOUNT_CONNECTION, 82 enum { CMD_ACCOUNT_ALIAS, CMD_ACCOUNT_CONNECT, CMD_ACCOUNT_CONNECTION,
83 CMD_ACCOUNT_DISCONNECT, CMD_ACCOUNT_FIND, CMD_ACCOUNT_HANDLE, 83 CMD_ACCOUNT_DISCONNECT, CMD_ACCOUNT_FIND, CMD_ACCOUNT_HANDLE,
84 CMD_ACCOUNT_ISCONNECTED, CMD_ACCOUNT_LIST, CMD_ACCOUNT_PROTOCOL, 84 CMD_ACCOUNT_ISCONNECTED, CMD_ACCOUNT_LIST, CMD_ACCOUNT_PUBLIC_IP,
85 CMD_ACCOUNT_USERNAME } cmd; 85 CMD_ACCOUNT_PROTOCOL, CMD_ACCOUNT_USERNAME } cmd;
86 char *listopts[] = { "-all", "-online", NULL }; 86 char *listopts[] = { "-all", "-online", NULL };
87 enum { CMD_ACCOUNTLIST_ALL, CMD_ACCOUNTLIST_ONLINE } listopt; 87 enum { CMD_ACCOUNTLIST_ALL, CMD_ACCOUNTLIST_ONLINE } listopt;
88 const char *alias; 88 const char *alias, *ip;
89 GList *cur; 89 GList *cur;
90 GaimAccount *account; 90 GaimAccount *account;
91 int error; 91 int error;
92 92
93 if (objc < 2) { 93 if (objc < 2) {
185 continue; 185 continue;
186 elem = Tcl_NewIntObj((int)account); 186 elem = Tcl_NewIntObj((int)account);
187 Tcl_ListObjAppendElement(interp, list, elem); 187 Tcl_ListObjAppendElement(interp, list, elem);
188 } 188 }
189 Tcl_SetObjResult(interp, list); 189 Tcl_SetObjResult(interp, list);
190 break;
191 case CMD_ACCOUNT_PUBLIC_IP:
192 if (objc != 3) {
193 Tcl_WrongNumArgs(interp, 2, objv, "account");
194 return TCL_ERROR;
195 }
196 error = Tcl_GetIntFromObj(interp, objv[2], (int *)&account);
197 if (error || !tcl_validate_account(account, interp))
198 return TCL_ERROR;
199 ip = gaim_account_get_public_ip(account);
200 Tcl_SetStringObj(result, ip != NULL ? (char *)ip : "", -1);
190 break; 201 break;
191 case CMD_ACCOUNT_PROTOCOL: 202 case CMD_ACCOUNT_PROTOCOL:
192 if (objc != 3) { 203 if (objc != 3) {
193 Tcl_WrongNumArgs(interp, 2, objv, "account"); 204 Tcl_WrongNumArgs(interp, 2, objv, "account");
194 return TCL_ERROR; 205 return TCL_ERROR;

mercurial