Below are the two files from our project that we need to modify so the user enters a name that will appear before their typed text. We must prepend the name followed by a greater-than sign to each line of the text before sending the text across the network or to the receiver. I am having issues with sending the user input name to the other file. Can anyone help? I was going to try global variables but that didn't work either ( see header file below).

Code:
/* chatserver.c */

#include <stdlib.h>
#include <stdio.h>
#include "cnaiapi.h"

#define BUFFSIZE        256
#define MAX_SNAME                15
#define INPUT_PROMPT        "  >"
#define RECEIVED_PROMPT        ">" 

int recvln(connection, char *, int);
int readln(char *, int);

/*-----------------------------------------------------------------------
 *
 * Program: chatserver
 * Purpose: wait for a connection from a chatclient & allow users to chat
 * Usage:   chatserver <appnum>
 *
 *-----------------------------------------------------------------------
 */
int
main(int argc, char *argv[])
{
    connection    conn;
    int        len;
    char        buff[BUFFSIZE];
      char            sname[MAX_SNAME];

    if (argc != 2) {
        (void) fprintf(stderr, "usage: %s <appnum>\n", argv[0]);
        exit(1);
    }

    //(void)printf("Enter your chat name followed by ">". \n");
    //scanf("%s", &sname);

    
    /* Input Name to use */

    printf ("Enter your chat name. \n");
    scanf("%s", sname);
    //len = recvln( sname, MAX_SNAME);

    

    (void) printf("Chat Server Waiting For Connection.\n");

    

    /* wait for a connection from a chatclient */

    conn = await_contact((appnum) atoi(argv[1]));
    if (conn < 0)
        exit(1);
    
    (void) printf("Chat Connection Established.\n");
    
    /* iterate, reading from the client and the local user */

    while((len = recvln(conn, buff, BUFFSIZE)) > 0) {
        //printf (cname);                                    ///  To Test Global Variable ( Didn't work!! :( 
        (void) printf(RECEIVED_PROMPT);
        //len = readln(buff 2, BUFFSIZE+MAX_CNAME);              /// tRY RUNNING IT WITH THese LINE TO SEE WHAT HAPPENS!!
        //printf (len);
        (void) fflush(stdout);
        (void) write(STDOUT_FILENO, buff, len);
        
        /* send a line to the chatclient */

        printf (sname);
        (void) printf(INPUT_PROMPT);
        (void) fflush(stdout);
        if ((len = readln(buff, BUFFSIZE)) < 1)
            break;
        buff[len - 1] = '\n';
        (void) send(conn, buff, len, 0);
    }

    /* iteration ends when EOF found on stdin or chat connection */

    (void) send_eof(conn);
    (void) printf("\nChat Connection Closed.\n\n");
    return 0;
}
Below is the client code
Code:
/* chatclient.c */

#include <stdlib.h>
#include <stdio.h>
#include "cnaiapi.h"

#define BUFFSIZE        256
#define MAX_CNAME               15
#define INPUT_PROMPT        "  > "
#define RECEIVED_PROMPT        "> "

int recvln(connection, char *, int);
int readln(char *, int);

/*-----------------------------------------------------------------------
 *
 * Program: chatclient
 * Purpose: contact a chatserver and allow users to chat
 * Usage:   chatclient <compname> <appnum>
 *
 *-----------------------------------------------------------------------
 */
int
main(int argc, char *argv[])
{
    computer    comp;
    connection    conn;
    char        buff[BUFFSIZE];
    int        len;
       char            cname[MAX_CNAME];

    if (argc != 3) {
        (void) fprintf(stderr, "usage: %s <compname> <appnum>\n",
                   argv[0]);
        exit(1);
    }


  //    printf("Enter your chat name followed by ">". \n");
  //    scanf("%c", &cname);

    /* convert the compname to binary form comp */

    comp = cname_to_comp(argv[1]);
    if (comp == -1)
        exit(1);

    /* Input Name to use */

    printf ("Enter your chat name. \n");
    scanf("%s", cname);
    //len = recvln( cname, MAX_CNAME);


    /* make a connection to the chatserver */

    conn = make_contact(comp, (appnum) atoi(argv[2]));
    if (conn < 0) 
        exit(1);

    (void) printf("Chat Connection Established.\n");
    printf (cname);
    (void) printf(INPUT_PROMPT);
    (void) fflush(stdout);

    /* iterate, reading from local user and then from chatserver */

    while((len = readln(buff, BUFFSIZE)) > 0) {
        buff[len - 1] = '\n';
        (void) send(conn, buff, len, 0);
        
        /* receive and print a line from the chatserver */
        if ((len = recvln( conn, buff, BUFFSIZE)) < 1)
            break;
        (void) printf(RECEIVED_PROMPT);
        (void) fflush(stdout);
        (void) write(STDOUT_FILENO, buff, len);

        
        (void) printf(INPUT_PROMPT);
        (void) fflush(stdout);
    }

    /* iteration ends when stdin or the connection indicates EOF */

    (void) printf("\nChat Connection Closed.\n");
    (void) send_eof(conn);
    exit(0);
}
Below is the header file where I tried declaring my global variables.

Code:
/* cnaiapi.h */

#ifndef _CNAIAPI_H_
#define _CNAIAPI_H_

#define LINUX

#if defined(LINUX) || defined(SOLARIS)
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <pthread.h>
#include <unistd.h>
#endif /* defined(LINUX) || defined(SOLARIS) */

#if defined(WIN32)
#include <winsock2.h>
#include <cnaiapi_win32.h>
#endif /* defined(WIN32) */

#include <sys/types.h>

typedef short    appnum;
typedef int    computer;
typedef int    connection;
extern char sname;                  //  Added these global variables
extern char cname;                  // Added these global variables 

struct port2sock {
    short    port;
    int    sock;
};

#define P2S_SIZE 64 /* number of entries in port to socket map table    */
#define LISTEN_Q_LEN 5

appnum        appname_to_appnum(char *appname);
computer    cname_to_comp(char *cname);
connection    await_contact(appnum a);
connection    make_contact(computer c, appnum a);
int        send_eof(connection c);
void            cnaiapi_init(void);

#if defined(LINUX) || defined(SOLARIS)
extern pthread_mutex_t await_contact_mutex, cname_mutex, appname_mutex;
#elif defined(WIN32)
extern HANDLE await_contact_mutex, cname_mutex, appname_mutex;
#endif

#endif /* !defined(_CNAIAPI_H_) */
Any help is appriciated. Thanks!!!!