SESSION API

1. wbGetSession

wbGetSession returns the current session to the requesting user.

If there is no session, it creates a new session and returns it. To ensure that the session is managed correctly, it must be called at least once before any result is sent to the response.

  • Prototype

    #include <wbapi.h>
    SESSION* wbGetSession(WBSVCINFO *rqst)
  • Return value

    If the wbGetSession() call is successful, a valid session is returned.

  • Example

    <getsession.m>

    *DOMAIN
    webtob1
    
    *NODE
     tmaxh1         WEBTOBDIR="/user2/haninho/webtob",
                    SHMKEY = 54777,
                    DOCROOT="/user2/haninho/webtob/docs",
                    APPDIR = "/user2/haninho/webtob/ap",
                    PORT = "7654"
    
    *SVRGROUP
     htmlg          NODENAME = "tmaxh1", SvrType = HTML
     webapg         NODENAME = "tmaxh1", SvrType = WEBSTD
    
    *SERVER
     html           SVGNAME = htmlg, MinProc = 1, MaxProc = 2
     getsession     SVGNAME = webapg, MinProc = 1, MaxProc = 2
    
    *SERVICE
     test           SVrname= getsession
    
    *URI
     uri1           uri = "/svct/", SvrType = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. Compile the configuration file (Config-file).

      $wscfl –i getsession.m
    2. Create a service table.

      $wsgst
    3. Generate a source file. The following is an example WBAPI program that processes requests, and the file name is getsession.c.

       #include <stdio.h>
       #include <string.h>
       #include "../usrinc/wbapi.h"
      
       test(WBSVCINFO *rqst)
       {
              char *id;
              SESSION *session;
              session = wbGetSession(rqst);
              id = wbSessionGetId(session);
              wbPrint(rqst,”session id= %s”, id);
              wbReturn(rqst, WBSUCCESS);
       }
    4. Compile the C file created with WBAPI using the Makefile file.

      $compile c getsession
    5. The following is the screen where the results are printed.

      When you request a WBAPI service with a browser, you get the following result:

      image

  • Related functions

    wbGetRequestedSessionId(), wbGetSessionId(), wbSessionGetValue(),wbSessionGetLastAccessedTime(), wbSessionGetMaxInactiveInterval(), wbSessionGetCreationTime(), wbSessionGetValueNames()

2. wbSessionGetCreationTime

wbSessionGetCreationTime returns the time the current session was created.

Returns the time the session was created as a long type representing the time in milliseconds since midnight, January 1, 1970 GMT.

  • Prototype

    #include <wbapi.h>
    long wbSessionGetCreationTime(SESSION *session)
  • Return value

    If the wbSessionGetCreationTime() call is successful, it returns the time the session was created.

  • Example

    <createtime.m>

    *DOMAIN
    webtob1
    
    *NODE
     tmaxh1         WEBTOBDIR="/user2/haninho/webtob",
                    SHMKEY = 54777,
                    DOCROOT="/user2/haninho/webtob/docs",
                    APPDIR = "/user2/haninho/webtob/ap",
                    PORT = "7654"
    
    *SVRGROUP
     htmlg          NODENAME = "tmaxh1", SvrType = HTML
     webapg         NODENAME = "tmaxh1", SvrType = WEBSTD
    
    *SERVER
     html           SVGNAME = htmlg, MinProc = 1, MaxProc = 2
     createtime     SVGNAME = webapg, MinProc = 1, MaxProc = 2
    
    *SERVICE
     test           SVrname= createtime
    
    *URI
     uri1           uri = "/svct/", SvrType = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. Compile the configuration file (Config-file).

      $wscfl –i createtime.m
    2. Create a service table.

      $wsgst
    3. Create a source file. The following is an example WBAPI program that processes a request, named createtime.c.

       #include <stdio.h>
       #include <string.h>
       #include "../usrinc/atmi.h"
       #include "../usrinc/wbapi.h"
      
       test(WBSVCINFO *rqst) {
              long time;
              SESSION *session;
              session = wbGetSession(rqst);
              time = wbSessionGetCreationTime(session);
              wbPrint(rqst, "create time = %ld<br>", time);
              wbReturn(rqst, WBSUCCESS);
       }
    4. Compile the C file created with WBAPI using the Makefile file.

      $compile c createtime
    5. The following is the screen where the results are printed.

      When you request a WBAPI service with a browser, you get the following result:

      image

  • Related functions

    wbGetRequestedSessionId(), wbGetSession(), wbGetSessionId(), wbSessionGetLastAccessedTime(), wbSessionGetMaxInactiveInterval(), wbSessionGetValue(), wbSessionGetValueNames()

3. wbSessionGetId

wbSessionGetId returns the string identifier (ID) assigned to the current session.

  • Prototype

    #include <wbapi.h>
    char* wbSessionGetId(SESSION *session)
  • Return value

    If the wbSessionGetId() call is successful, it returns the string assigned to the session.

  • Example

    <getid.m>

    *DOMAIN
    webtob1
    
    *NODE
     tmaxh1         WEBTOBDIR="/user2/haninho/webtob",
                    SHMKEY = 54777,
                    DOCROOT="/user2/haninho/webtob/docs",
                    APPDIR = "/user2/haninho/webtob/ap",
                    PORT = "7654"
    
    *SVRGROUP
     htmlg          NODENAME = "tmaxh1", SvrType = HTML
     webapg         NODENAME = "tmaxh1", SvrType = WEBSTD
    
    *SERVER
     html           SVGNAME = htmlg, MinProc = 1, MaxProc = 2
     getid          SVGNAME = webapg, MinProc = 1, MaxProc = 2
    
    *SERVICE
     test           SVrname= getid
    
    *URI
     uri1           uri = "/svct/", SvrType = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. Compile the configuration file (Config-file).

      $wscfl –i getid.m
    2. Create a service table.

      $wsgst
    3. Generate a source file. The following is an example WBAPI program that processes a request, and the file name is getid.c.

       #include <stdio.h>
       #include <string.h>
       #include "../usrinc/wbapi.h"
      
       test(WBSVCINFO *rqst) {
              int ex;
              char *id;
              SESSION *session;
              session = wbGetSession(rqst);
              ex = wbSessionIsNew(session);
              id = wbSessionGetId(session);
              wbPrint(rqst, "session id = %s<br>", id);
              wbReturn(rqst, WBSUCCESS);
       }
    4. Compile the C file created with WBAPI using the Makefile file.

      $compile c getid
    5. The following is the screen where the results are printed.

      When you request a WBAPI service with a browser, you get the following result:

      image

  • Related functions

    wbGetRequestedSessionId(), wbSessionGetCreationTime(), wbGetSession(), wbSessionGetLastAccessedTime(), wbSessionGetMaxInactiveInterval(), wbSessionGetValue(), wbSessionGetValueNames()

4. wbSessionGetLastAccessedTime

wbSessionGetLastAccessedTime returns the time when the client last sent a request.

Returns the time of the last request sent by the client during this session, represented as a long-type data value indicating the time in milliseconds since midnight, January 1, 1970, GMT.

  • Prototype

    #include <wbapi.h>
    long wbSessionGetLastAccessedTime(SESSION *session)
  • Return value

    If the wbSessionGetlastAccessedTime() call is successful, it returns the time the client last sent a request.

  • Example

    <lasttime.m>

    *DOMAIN
    webtob1
    
    *NODE
     tmaxh1         WEBTOBDIR="/user2/haninho/webtob",
                    SHMKEY = 54777,
                    DOCROOT="/user2/haninho/webtob/docs",
                    APPDIR = "/user2/haninho/webtob/ap",
                    PORT = "7654"
    
    *SVRGROUP
     htmlg          NODENAME = "tmaxh1", SvrType = HTML
     webapg         NODENAME = "tmaxh1", SvrType = WEBSTD
    
    *SERVER
     html           SVGNAME = htmlg, MinProc = 1, MaxProc = 2
     lasttime       SVGNAME = webapg, MinProc = 1, MaxProc = 2
    
    *SERVICE
     test           SVrname= lasttime
    
    *URI
     uri1           uri = "/svct/", SvrType = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. Compile the configuration file (Config-file).

      $wscfl –i lasttime.m
    2. Create a service table.

      $wsgst
    3. Generate a source file. The following is an example WBAPI program that processes a request, named lasttime.c.

       #include <stdio.h>
       #include <string.h>
       #include "../usrinc/wbapi.h"
      
       test(WBSVCINFO *rqst) {
              long last;
              SESSION *session;
              session = wbGetSession(rqst);
              last = wbSessionGetLastAccessedTime(session);
              wbPrint(rqst, "session last access time = %ld<br>", last);
              wbReturn(rqst, WBSUCCESS);
       }
    4. Compile the C file created with WBAPI using the Makefile file.

      $compile c lasttime
    5. The following is the screen where the results are printed.

      When you request a WBAPI service with a browser, you get the following result:

      image

  • Related functions

    wbGetRequestedSessionId(), wbSessionGetCreationTime(), wbGetSessionId(), wbGetSession(), wbSessionGetMaxInactiveInterval(), wbSessionGetValue(), wbSessionGetValueNames()

5. wbSessionGetValue

wbSessionGetValue finds and returns the value with the specified name in the session.

  • Prototype

    #include <wbapi.h>
    int wbSessionGetValue(SESSION *session, char *name, int *len)
  • Return value

    Finds and returns the value of the specified name in the session. If the specified name does not exist, NULL is returned.

  • Example

    <getvalue.m>

    *DOMAIN
    webtob1
    
    *NODE
     tmaxh1         WEBTOBDIR="/user2/haninho/webtob",
                    SHMKEY = 54777,
                    DOCROOT="/user2/haninho/webtob/docs",
                    APPDIR = "/user2/haninho/webtob/ap",
                    PORT = "7654"
    
    *SVRGROUP
     htmlg          NODENAME = "tmaxh1", SvrType = HTML
     webapg         NODENAME = "tmaxh1", SvrType = WEBSTD
    
    *SERVER
     html           SVGNAME = htmlg, MinProc = 1, MaxProc = 2
     getvalue       SVGNAME = webapg, MinProc = 1, MaxProc = 2
    
    *SERVICE
     test            SVrname= getvalue
    
    *URI
     uri1            uri = "/svct/", SvrType = WEBSTD
    
    *EXT
     htm             MimeType = "text/html", SvrType = HTML
    1. Compile the configuration file (Config-file).

      $wscfl –i getvalue.m
    2. Create a service table.

      $wsgst
    3. Generate a source file. The following is an example WBAPI program that processes a request, and the file name is getvalue.c.

       #include <stdio.h>
       #include <string.h>
       #include "../usrinc/wbapi.h"
       test(WBSVCINFO *rqst){
              int len;
              char *value, *value2;
              SESSION *session;
              SESSION *session1;
       SESSION *session2;
              session= wbGetSession(rqst);
              session1 = wbSessionSetValue(session, "name", "webtob",6);
       session2 = wbSessionSetValue(session1, "tel", "123-1234",8);
              value = wbSessionGetValue(session2 , "name",&len);
       value2 = wbSessionGetValue(session2 , "tel",&len);
       wbPrint(rqst, "session value = %s<br>", value);
              wbPrint(rqst, "session value = %s", value2);
              wbReturn(rqst, WBSUCCESS);
      }
    4. Compile the C file created with WBAPI using the Makefile file.

      $compile c getvalue
    5. The following is the screen where the results are printed.

      When you request a WBAPI service with a browser, you get the following result:

      image

  • Related functions

    wbGetRequestedSessionId(), wbSessionGetCreationTime(), wbGetSessionId(), wbSessionGetLastAccessedTime(), wbSessionGetMaxInactiveInterval(), wbGetSession(), wbSessionGetValueNames()

6. wbSessionGetValueNames

wbSessionGetValueNames returns an array containing the names of all values stored in the current session.

  • Prototype

    #include <wbapi.h>
    char** wbSessionGetValueNames(SESSION *session, int *len)
  • Return value

    Finds and returns the names of all values in the session. If no values are found, NULL is returned.

  • Example

    <valuename.m>

    *DOMAIN
    webtob1
    
    *NODE
     tmaxh1         WEBTOBDIR="/user2/haninho/webtob",
                    SHMKEY = 54777,
                    DOCROOT="/user2/haninho/webtob/docs",
                    APPDIR = "/user2/haninho/webtob/ap",
                    PORT = "7654"
    
    *SVRGROUP
     htmlg          NODENAME = "tmaxh1", SvrType = HTML
     webapg         NODENAME = "tmaxh1", SvrType = WEBSTD
    
    *SERVER
     html           SVGNAME = htmlg, MinProc = 1, MaxProc = 2
     valuename      SVGNAME = webapg, MinProc = 1, MaxProc = 2
    
    *SERVICE
     test           SVrname= valuename
    
    *URI
     uri1           uri = "/svct/", SvrType = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. Compile the configuration file (Config-file).

      $wscfl –i valuename.m
    2. Create a service table.

      $wsgst
    3. Generate a source file. The following is an example WBAPI program that processes a request, named valuename.c.

       #include <stdio.h>
       #include <string.h>
       #include "../usrinc/wbapi.h"
      
       test(WBSVCINFO *rqst) {
              char **na;
              int len;
              SESSION *session;
              SESSION *session1;
              SESSION *session2;
              session= wbGetSession(rqst);
              session1 = wbSessionSetValue(session, "name", "webtob",6);
              session2 = wbSessionSetValue(session1, "tel", "123-1234",8);
              na = wbSessionGetValueNames(session2,&len);
              wbPrint(rqst,"name1 = %s\n<br>",*na);
              wbPrint(rqst,"name2 = %s\n",*(na+1));
              wbReturn(rqst, WBSUCCESS);
       }
    4. Compile the C file created with WBAPI using the Makefile file.

      $compile c valuename
    5. The following is the screen where the results are printed.

      When you request a WBAPI service with a browser, you get the following result:

      image

  • Related functions

    wbGetRequestedSessionId(), wbSessionGetCreationTime(), wbGetSessionId(), wbSessionGetLastAccessedTime(), wbSessionGetMaxInactiveInterval(), wbSessionGetValue(), wbGetSession()

7. wbSessionGetMaxInactiveInterval

wbSessionGetMaxInactiveInterval gets the maximum inactive interval time in seconds for a session. The default is 1800 seconds, or 30 minutes.

  • Prototype

    #include <wbapi.h>
    int wbSessionGetMaxInactiveInterval(SESSION *session)
  • Return value

    If the wbSessionGetMaxInactiveInterval() call is successful, it returns the inactive interval time in seconds specified for the session.

  • Example

    <getinterval.m>

    *DOMAIN
    webtob1
    
    *NODE
     tmaxh1         WEBTOBDIR="/user2/haninho/webtob",
                    SHMKEY = 54777,
                    DOCROOT="/user2/haninho/webtob/docs",
                    APPDIR = "/user2/haninho/webtob/ap",
                    PORT = "7654"
    
    *SVRGROUP
     htmlg          NODENAME = "tmaxh1", SvrType = HTML
     webapg         NODENAME = "tmaxh1", SvrType = WEBSTD
    
    *SERVER
     html           SVGNAME = htmlg, MinProc = 1, MaxProc = 2
     getinterval    SVGNAME = webapg, MinProc = 1, MaxProc = 2
    
    *SERVICE
     test           SVrname= getinterval
    
    *URI
     uri1           uri = "/svct/", SvrType = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. Compile the configuration file (Config-file).

      $wscfl –i getinterval.m
    2. Create a service table.

      $wsgst
    3. Generate a source file. The following is an example WBAPI program that processes requests, and the file name is getinterval.c.

       #include <stdio.h>
       #include <string.h>
       #include "../usrinc/wbapi.h"
      
       test(WBSVCINFO *rqst) {
              int ex=0, interval, check;
              SESSION *session;
              session = wbGetSession(rqst);
              ex = wbSessionIsNew(session);
              interval = wbSessionGetMaxInactiveInterval(session);
              if(ex == 1)         {
                wbPrint(rqst, "session inactive Interval = %d<br>", interval);
              } else {
                      wbPrint(rqst," fail create session");
              }
              check = wbSessionSetMaxInactiveInterval(session, 3000);
              interval = wbSessionGetMaxInactiveInterval(session);
              wbPrint(rqst, "session new inactive Interval = %d<br>", interval);
              wbReturn(rqst, WBSUCCESS);
       }
    4. Compile the C file created with WBAPI using the Makefile file.

      $compile c getinterval
    5. The following is the screen where the results are printed.

      When you request a WBAPI service with a browser, you get the following result:

      image

  • Related functions

    wbGetRequestedSessionId(), wbSessionGetCreationTime(), wbGetSessionId(), wbSessionGetLastAccessedTime(), wbGetSession (), wbSessionGetValue(), wbSessionGetValueNames()

8. wbSessionSetMaxInactiveInterval

wbSessionSetMaxInactiveInterval resets the maximum inactive interval time for a session in seconds. The default value is 1800 seconds, or 30 minutes.

  • Prototype

    #include <wbapi.h>
    int wbSessionSetMaxInactiveInterval(SESSION *session, int interval)
  • Return value

    If the wbSessionSetMaxInactiveInterval() call succeeds, it returns 1, otherwise it returns 0.

  • Example

    <setinterval.m>

    *DOMAIN
    webtob1
    
    *NODE
     tmaxh1         WEBTOBDIR="/user2/haninho/webtob",
                    SHMKEY = 54777,
                    DOCROOT="/user2/haninho/webtob/docs",
                    APPDIR = "/user2/haninho/webtob/ap",
                    PORT = "7654"
    
    *SVRGROUP
     htmlg          NODENAME = "tmaxh1", SvrType = HTML
     webapg         NODENAME = "tmaxh1", SvrType = WEBSTD
    
    *SERVER
     html           SVGNAME = htmlg, MinProc = 1, MaxProc = 2
     setinterval    SVGNAME = webapg, MinProc = 1, MaxProc = 2
    
    *SERVICE
     test           SVrname= setinterval
    
    *URI
     uri1           uri = "/svct/", SvrType = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. Compile the configuration file (Config-file).

      $wscfl –i setinterval.m
    2. Create a service table.

      $wsgst
    3. Generate a source file. The following is an example WBAPI program that processes requests, and the file name is setinterval.c.

       #include <stdio.h>
       #include <string.h>
       #include "../usrinc/wbapi.h"
      
       test(WBSVCINFO *rqst) {
              int ex=0, interval, check;
              SESSION *session;
              session = wbGetSession(rqst);
              ex = wbSessionIsNew(session);
              interval = wbSessionGetMaxInactiveInterval(session);
              if(ex == 1)         {
                wbPrint(rqst, "session inactive Interval = %d<br>", interval);
              } else {
                      wbPrint(rqst," fail create session");
              }
              check = wbSessionSetMaxInactiveInterval(session, 3000);
              interval = wbSessionGetMaxInactiveInterval(session);
              wbPrint(rqst, "session new inactive Interval = %d<br>", interval);
              wbReturn(rqst, WBSUCCESS);
       }
    4. Compile the C file created with WBAPI using the Makefile file.

      $compile c setinterval
    5. The following is the screen where the results are printed.

      When you request a WBAPI service with a browser, you get the following result:

      image

  • Related functions

    wbSessionSetValue()

9. wbSessionSetValue

wbSessionSetValue stores a value for a specified name in the session. If a value with the specified name already exists, it is replaced.

  • Prototype

    #include <wbapi.h>
    SESSION* wbSessionSetValue(SESSION *session, char *name, int len)
  • Return value

    The session containing the specified name value is returned.

  • Example

    <setvalue.m>

    *DOMAIN
    webtob1
    
    *NODE
     tmaxh1         WEBTOBDIR="/user2/haninho/webtob",
                    SHMKEY = 54777,
                    DOCROOT="/user2/haninho/webtob/docs",
                    APPDIR = "/user2/haninho/webtob/ap",
                    PORT = "7654"
    
    *SVRGROUP
     htmlg          NODENAME = "tmaxh1", SvrType = HTML
     webapg         NODENAME = "tmaxh1", SvrType = WEBSTD
    
    *SERVER
     html           SVGNAME = htmlg, MinProc = 1, MaxProc = 2
     setvalue       SVGNAME = webapg, MinProc = 1, MaxProc = 2
    
    *SERVICE
     test           SVrname= setvalue
    
    *URI
     uri1           uri = "/svct/", SvrType = WEBSTD 
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. Compile the configuration file (Config-file).

      $wscfl –i setvalue.m
    2. Create a service table.

      $wsgst
    3. Generate a source file. The following is an example WBAPI program that processes a request, and the file name is setvalue.c.

       #include <stdio.h>
       #include <string.h>
       #include "../usrinc/wbapi.h"
      
       test(WBSVCINFO *rqst) {
              int len;
              char *value, *value2;
              SESSION *session;
              SESSION *session1;
              SESSION *session2;
              session= wbGetSession(rqst);
              session1 = wbSessionSetValue(session, "name", "webtob",6);
              session2 = wbSessionSetValue(session1, "tel", "123-1234",8);
              value = wbSessionGetValue(session2 , "name",&len);
              value2 = wbSessionGetValue(session2 , "tel",&len);
              wbPrint(rqst, "session value = %s<br>", value);
              wbPrint(rqst, "session value = %s", value2);
              wbReturn(rqst, WBSUCCESS);
       }
    4. Compile the C file created with WBAPI using the Makefile file.

      $compile c setvalue
    5. The following is the screen where the results are printed.

      When you request a WBAPI service with a browser, you get the following result:

      image

  • Related functions

    wbSessionSetMaxInactiveInterval()

10. wbSessionRemoveValue

wbSessionRemoveValue removes a value stored in the session. If there is no value stored with the argument name, it does nothing.

  • Prototype

    #include <wbapi.h>
    int wbSessionRemoveValue(SESSION *session, char *name)
  • Return value

    If the wbSessionRemoveValue() call is successful, it returns 1; if it fails, it returns 0.

  • Example

    <remove.m>

    *DOMAIN
    webtob1
    
    *NODE
     tmaxh1         WEBTOBDIR="/user2/haninho/webtob",
                    SHMKEY = 54777,
                    DOCROOT="/user2/haninho/webtob/docs",
                    APPDIR="/user2/haninho/webtob/ap",
                    PORT = “7654”
    
    *SVRGROUP
     htmlg          NODENAME = "tmaxh1", SvrType = HTML
     webapg         NODENAME = "tmaxh1", SVRTYPE = WEBSTD
    
    *SERVER
     html           SVGNAME = htmlg, MinProc = 1, MaxProc =2
     remove         SVGNAME = webapg, MinProc = 1, MaxProc = 2, 
    
    *SERVICE
     test           SVRNAME = remove
    
    *URI
     wbapi          Uri = "/svct/", Svrtype = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. Compile the configuration file (Config-file).

      $wscfl –i remove.m
    2. Create a service table.

      $wsgst
    3. Generate a source file. The following is an example WBAPI program that processes the request, named remove.c.

       #include <stdio.h>
       #include <string.h>
       #include "../usrinc/wbapi.h"
      
       test(WBSVCINFO *rqst)
       {
              int ex, len;
              char *value, *value2;
              SESSION *session;
              SESSION *newsession;
              session = wbGetSession(rqst);
              newsession = wbSessionSetValue(session, "name", "webtob",7);
              value = wbSessionGetValue(newsession , "name",&len);
              wbPrint(rqst, "session value = %s<br>", value);
              ex = wbSessionRemoveValue(newsession, "name");
              if(ex ==1)
              {
                      wbPrint(rqst, "delete value<br>");
              }
              value2 = wbSessionGetValue(newsession , "name", &len);
              if(value2 !=NULL)
              {
              wbPrint(rqst, "session value = %s<br>", value2);
              }
              else
              {
              wbPrint(rqst, "session value is null<br>");
              }
              wbReturn(rqst, WBSUCCESS);
       }
    4. Compile the C file created with WBAPI using the Makefile file.

      $compile c remove
    5. The following is the screen where the results are printed.

      When you request a WBAPI service with a browser, you get the following result:

      image

  • Related functions

    wbSessionGetValue(), wbSessionSetValue()

11. wbSessionIsNew

wbSessionIsNew returns a value indicating whether the session is new or not. A session is new if the server created the session but the client did not approve the session to be merged.

  • Prototype

    #include <wbapi.h>
    int wbSessionIsNew(SESSION *session)
  • Return value

    After calling wbSessionIsNew(), it returns 1 if the session is new, 0 if the client has already accepted the session.

  • Example

    <isnew.m>

    *DOMAIN
    webtob1
    
    *NODE
     tmaxh1         WEBTOBDIR="/user2/haninho/webtob",
                    SHMKEY = 54777,
                    DOCROOT="/user2/haninho/webtob/docs",
                    APPDIR="/user2/haninho/webtob/ap",
                    PORT = “7654”
    
    *SVRGROUP
     htmlg          NODENAME = "tmaxh1", SvrType = HTML
     webapg         NODENAME = "tmaxh1", SVRTYPE = WEBSTD
    
    *SERVER
     html           SVGNAME = htmlg, MinProc = 1, MaxProc =2
     isnew          SVGNAME = webapg, MinProc = 1, MaxProc = 2, 
    
    *SERVICE
     test           SVRNAME = isnew
    
    *URI
     wbapi          Uri = "/svct/", Svrtype = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. Compile the configuration file (Config-file).

      $wscfl –i isnew.m
    2. Create a service table.

      $wsgst
    3. Generate a source file. The following is an example WBAPI program that processes a request, and the file name is isnew.c.

       #include <stdio.h>
       #include <string.h>
       #include "../usrinc/wbapi.h"
      
       test(WBSVCINFO *rqst) {
              int ex=0;
              SESSION *session;
              session = wbGetSession(rqst);
              ex = wbSessionIsNew(session);
              if(ex == 1)         {
                      wbPrint(rqst, "new session");
              } else {
                      wbPrint(rqst," old session");
              }
              wbReturn(rqst, WBSUCCESS);
       }
    4. Compile the C file created with WBAPI using the Makefile file.

      $compile c isnew
    5. The following is the screen where the results are printed.

      When you request a WBAPI service with a browser, you get the following result:

      image

  • Related functions

    wbGetRequestedSessionId(), wbIsRequestedSessionIdValid(), wbSessionInvalidate()

12. wbSessionInvalidate

wbSessionInvalidate invalidates the session.

  • Prototype

    #include <wbapi.h>
    int wbSessionInvalidate(SESSION *session)
  • Return value

    If the wbSessionInvalidate() call succeeds, it returns 1; if it fails, it returns 0.

  • Example

    <invalidate.m>

    *DOMAIN
    webtob1
    
    *NODE
     tmaxh1         WEBTOBDIR="/user2/haninho/webtob",
                    SHMKEY = 54777,
                    DOCROOT="/user2/haninho/webtob/docs",
                    APPDIR="/user2/haninho/webtob/ap",
                    PORT = “7654”
    
    *SVRGROUP
     htmlg          NODENAME = "tmaxh1", SvrType = HTML
     webapg         NODENAME = "tmaxh1", SVRTYPE = WEBSTD
    
    *SERVER
     html           SVGNAME = htmlg, MinProc = 1, MaxProc =2
     invalidate     SVGNAME = webapg, MinProc = 1, MaxProc = 2, 
    
    *SERVICE
     test           SVRNAME = invalidate
     test2          SVRNAME = invalidate
    
    *URI
     wbapi          Uri = "/svct/", Svrtype = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. Compile the configuration file (Config-file).

      $wscfl –i invalidate.m
    2. Create a service table.

      $wsgst
    3. Generate a source file. The following is an example WBAPI program that processes a request, named invalidate.c.

       #include <stdio.h>
       #include <string.h>
       #include "../usrinc/wbapi.h"
       test(WBSVCINFO *rqst)
       {
              char *id;
              SESSION *session;
              session = wbGetSession(rqst);
              id = wbSessionGetId(session);
              wbPrint(rqst, "<html><body>");
              wbPrint(rqst, "<h1>session id is %s </h1><br>",id);
              wbPrint(rqst, "<form method=get action=/svct/test2>");
              wbPrint(rqst, "<td><input type=submit value=suit></td>");
              wbPrint(rqst, "</form>");
              wbPrint(rqst, "</body></html>");
              wbReturn(rqst, WBSUCCESS);
       }
       test2(WBSVCINFO *rqst)
       {
              int date;
              char *id;
              SESSION *session;
              session= wbGetSession(rqst);
              date = wbSessionInvalidate(session);
              id = wbSessionGetId(session);
       if(id !=NULL)
              {
              wbPrint(rqst, "<h1>session id is %s </h1><br>",id);
              }
              else
              {
              wbPrint(rqst, "<hi>Session id is Null</h1>");
              }
       if(date == 1)
              {
              wbPrint(rqst, "session  is invalidate=%d<br>",date);
              }
              else
              {
              wbPrint(rqst, "session  is validate=%d<br>",date);
              }
       wbPrint(rqst, "<html><body>");
              wbPrint(rqst, "<form method=get action=/svct/test2>");
              wbPrint(rqst, "<td><input type=submit value=suit></td>");
              wbPrint(rqst, "</form>");
              wbPrint(rqst, "</body></html>");
              wbReturn(rqst, WBSUCCESS);}
    4. Compile the C file created with WBAPI using the Makefile file.

      $compile c invalidate
    5. The following is the screen where the results are printed.

      Click the [suit] button.

      image

      Click the [suit] button again.

      image

  • Related functions

    wbGetRequestedSessionId(), wbIsRequestedSessionIdValid(), wbSessionIsNew()

13. wbGetRequestedSessionId

wbGetRequestedSessionId returns the session ID specified by the user.

However, this may not correspond to an actual session ID. For example, if the session has ended before the request was made, the server will create a new session ID and use that instead.

  • Prototype

    #include <wbapi.h>
    char* wbGetRequestedSessionId(WBSVCINFO *rqst)
  • Return value

    If the wbGetRequestedSessionId() call is successful, it returns the session ID.

  • Example

    <sessionid.m>

    *DOMAIN
    webtob1
    
    *NODE
     tmaxh1         WEBTOBDIR="/user2/haninho/webtob",
                    SHMKEY = 54777,
                    DOCROOT="/user2/haninho/webtob/docs",
                    APPDIR="/user2/haninho/webtob/ap",
                    PORT = “7654”
    
    *SVRGROUP
     htmlg          NODENAME = "tmaxh1", SvrType = HTML
     webapg         NODENAME = "tmaxh1", SVRTYPE = WEBSTD
    
    *SERVER
     html           SVGNAME = htmlg, MinProc = 1, MaxProc =2
     sessionid      SVGNAME = webapg, MinProc = 1, MaxProc = 2, 
    
    *SERVICE
     test           SVRNAME = sessionid
     test2          SVRNAME = sessionid
    
    *URI
     wbapi          Uri = "/svct/", Svrtype = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. Compile the configuration file (Config-file).

      $wscfl –i sessionid.m
    2. Create a service table.

      $wsgst
    3. Generate a source file. The following is an example WBAPI program that processes requests, and the file name is sessionid.c.

       #include <stdio.h>
       #include <string.h>
       #include "../usrinc/wbapi.h"
      
       test(WBSVCINFO *rqst)
       {
              char *id;
              SESSION *session;
              session = wbGetSession(rqst);
              id = wbSessionGetId(session);
              wbPrint(rqst, "<html><body>");
              wbPrint(rqst, "<h1>session id is %s </h1><br>",id);
      
              wbPrint(rqst, "<html><body>");
              wbPrint(rqst, "<form method=get action=/svct/test2>");
              wbPrint(rqst, "<td><input type=submit value=suit></td>");
              wbPrint(rqst, "</form>");
              wbPrint(rqst, "</body></html>");
              wbReturn(rqst, WBSUCCESS);
       }
       test2(WBSVCINFO *rqst)
       {
              char *sessionid;
              sessionid = wbGetRequestedSessionId(rqst);
              if(sessionid != NULL)
              {
              wbPrint(rqst, "sessionId  is = %s<br>",sessionid);
              }
              else
              {
              wbPrint(rqst, "sessionId  is NULL<br>");
              }
              wbReturn(rqst, WBSUCCESS);
       }
    4. Compile the C file created with WBAPI using the Makefile file.

      $compile c sessionid
    5. The following is the screen where the results are printed.

      Click the [suit] button.

      image

      Click the [suit] button again.

      image

  • Related functions

    wbSessionIsNew(), wbIsRequestedSessionIdValid(), wbSessionInvalidate()

14. wbIsRequestedSessionIdValid

wbIsRequestedSessionIdValid verifies whether the session requested by the client is a valid session.

If the session requested by the client is valid and currently in use, it returns 1. For newly created sessions or expired sessions, it returns 0.

  • Prototype

    #include <wbapi.h>
    int wbIsRequestedSessionIdValid(WBSVCINFO *rqst)
  • Return value

    Calling wbIsRequestedSessionIdVaild() returns 1 if the session is in use, and 0 if it is no longer in use.

  • Example

    <idvalid.m>

    *DOMAIN
    webtob1
    
    *NODE
     tmaxh1         WEBTOBDIR="/user2/haninho/webtob",
                    SHMKEY = 54777,
                    DOCROOT="/user2/haninho/webtob/docs",
                    APPDIR="/user2/haninho/webtob/ap",
                    PORT = “7654”
    
    *SVRGROUP
     htmlg          NODENAME = "tmaxh1", SvrType = HTML
     webapg         NODENAME = "tmaxh1", SVRTYPE = WEBSTD
    
    *SERVER
     html           SVGNAME = htmlg, MinProc = 1, MaxProc =2
     idvalid        SVGNAME = webapg, MinProc = 1, MaxProc = 2, 
    
    *SERVICE
     test           SVRNAME = idvalid
     test2          SVRNAME = idvalid
    
    *URI
     wbapi          Uri = "/svct/", Svrtype = WEBSTD
    
    *EXT
     htm            MimeType = "text/html", SvrType = HTML
    1. Compile the configuration file (Config-file).

      $wscfl –i idvalid.m
    2. Create a service table.

      $wsgst
    3. Generate a source file. The following is an example WBAPI program that processes requests, and the file name is sessionid.c.

       #include <stdio.h>
       #include <string.h>
       #include "../usrinc/wbapi.h"
      
       test(WBSVCINFO *rqst) {
              char *id;
              SESSION *session;
              session = wbGetSession(rqst);
              id = wbSessionGetId(session);
              wbPrint(rqst, "<html><body>");
              wbPrint(rqst, "<h1>session id is %s </h1><br>",id);
      
              wbPrint(rqst, "<html><body>");
              wbPrint(rqst, "<form method=get action=/svct/test2>");
              wbPrint(rqst, "<td><input type=submit value=suit></td>");
              wbPrint(rqst, "</form>");
              wbPrint(rqst, "</body></html>");
              wbReturn(rqst, WBSUCCESS);
       }
       test2(WBSVCINFO *rqst) {
       int date;
              date = wbIsRequestedSessionIdValid(rqst);
              if(date == 1)
              {
              wbPrint(rqst, "session  is used=%d<br>",date);
              }
              else
              {
              wbPrint(rqst, "session  is not used=%d<br>",date);
              }
              wbPrint(rqst, "<html><body>");
              wbPrint(rqst, "<form method=get action=/svct/test2>");
              wbPrint(rqst, "<td><input type=submit value=suit></td>");
              wbPrint(rqst, "</form>");
              wbPrint(rqst, "</body></html>");
              wbReturn(rqst, WBSUCCESS);
      }
    4. Compile the C file created with WBAPI using the Makefile file.

      $compile c sessionid
    5. The following is the screen where the results are printed.

      [suit] Click the button.

      image

      Click the [suit] button again.

      image

  • Related functions

    wbGetRequestedSessionId(), wbSessionIsNew(), wbSessionInvalidate()