#include #include #include #include #include "procterm.h" #include "xterminals.m" int main (int argc, char *argv[]) { const char *ip; const char *port; bool showlisten; glocal.ip = NULL; glocal.port = NULL; glocal.showlisten = false; int ret = (argc,argv,"xterminals"); fprintf (stderr ,MSG_U(I_PIDSOCKETUSAGE ,"pidsocket --ip IP-number --port TCP-port-number --showlisten\n" "\n" "Reports the process which are connected to a given socket\n") ); int ret = 1; if (strcmp(opt,"--ip")==0){ glocal.ip = val; }else if (strcmp(opt,"--port")==0){ glocal.port = val; }else if (strcmp(opt,"--showlisten")==0){ glocal.showlisten = true; ret = 0; }else{ ret = -1; } return ret; PROCTERMS procs; int nb = procterm_get(glocal.ip,glocal.port,glocal.showlisten,procs); //fprintf (stderr,"%d socket found\n",nb); printf (MSG_U(I_PROCHEAD,"PID\tUid\tIP number\tPort\tInode\tProgram\n")); for (int i=0; iip,ipstr); uid_t uid = t->getuid(); char uidstr[100]; struct passwd *p = getpwuid (uid); if (p != NULL){ snprintf (uidstr,sizeof(uidstr)-1,"%s",p->pw_name); }else{ sprintf (uidstr,"[%d]",uid); } printf ("%d\t%s\t%-15s\t%d\t%d\t%s\n",t->pid,uidstr,ipstr,t->port ,t->inode,t->getexepath()); } return 0; usage(); return -1; return ret; }