/* $Header: /users/server/students/cs522/project/sharedraw/RCS/conn.c,v 1.3 1992/11/02 18:38:47 chow Exp chow $ */ #include "conn.h" #include "msg.h" #include #include #include #include #include #include extern "C" { char* getlogin(); }; ConnectCmd::ConnectCmd ( const char* label, ButtonState* b, View* v ) : (label, b, 1) { input = new Sensor(updownEvents); view = v; bs = b; conndialog = new Namer(v, "Enter the user to be connected:"); } void ConnectCmd::Press() { /* get the user name to be connected */ const char* name = nil; printf("before dialog->Edit\n"); name = conndialog->Edit(nil); printf("after dialog->Edit\n"); if (name == nil) return; view->output->ClearRect(view->canvas, 0, 0, view->canvas->Width()-1, view->canvas->Height()-1); struct ConnRecord cnr; cnr.msgType = CONN; cnr.size = strlen(name); strcpy(cnr.name, name); strcpy(cnr.originator, getlogin()); printf("sending connection record, cnr.name=%s\n", cnr.name); if (sendto(view->socketToUA, (char *) &cnr, sizeof(struct ConnRecord), 0, &(view->toSocket), sizeof(struct sockaddr_un)) < 0) perror("sending datagram message"); } DiscCmd::DiscCmd ( const char* label, ButtonState* b, View* v ) : (label, b, 1) { view = v; discdialog = new Confirmer(v, "Do you really want to disconnect?"); } void DiscCmd::Press() { char response = discdialog->Confirm(); if (response != 'y') return; struct DiscRecord dr; dr.msgType = DISC; if (sendto(view->socketToUA, (char *) &dr, sizeof(struct DiscRecord), 0, &(view->toSocket), sizeof(struct sockaddr_un)) < 0) perror("sending datagram message"); } ListCmd::ListCmd ( const char* label, ButtonState* b, View* v) : (label, b, 1) { view = v; } void ListCmd::Press() { struct DiscRecord dr; dr.msgType = 14; /* use disc record but different msg type*/ if (sendto(view->socketToUA, (char *) &dr, sizeof(struct DiscRecord), 0, &(view->toSocket), sizeof(struct sockaddr_un)) < 0) perror("sending datagram message"); } SuspendCmd::SuspendCmd ( const char* label, ButtonState* b, View* v) : (label, b, 1) { view = v; } void SuspendCmd::Press() { struct DiscRecord dr; dr.msgType = 15; /* use disc record but different msg type*/ if (sendto(view->socketToUA, (char *) &dr, sizeof(struct DiscRecord), 0, &(view->toSocket), sizeof(struct sockaddr_un)) < 0) perror("sending datagram message"); } ResumeCmd::ResumeCmd ( const char* label, ButtonState* b, View* v) : (label, b, 1) { view = v; } void ResumeCmd::Press() { struct DiscRecord dr; dr.msgType = 16; /* use disc record but different msg type*/ if (sendto(view->socketToUA, (char *) &dr, sizeof(struct DiscRecord), 0, &(view->toSocket), sizeof(struct sockaddr_un)) < 0) perror("sending datagram message"); }