me);
}
if ( !cmd || !strcmp(cmd, "new") )
- printf("\n'new' command usage: %s new [-j jobid] [-o owner]\n"
+ printf("\n'new' command usage: %s new {-j jobid | -o owner | -n network_server}\n"
" jobid job ID to connect notif. reg. with\n"
" owner match this owner DN\n"
+ " network_server match only this networ server (WMS entry point)\n"
, me);
if ( !cmd || !strcmp(cmd, "bind") )
printf("\n'bind' command usage: %s bind notifid [fake_addr]\n"
int c;
edg_wlc_JobId jid;
edg_wll_NotifId id_out;
- char *job = NULL,*owner = NULL;
-
- while ((c = getopt(argc-1,argv+1,"j:o:")) > 0) switch (c) {
- case 'j': job = optarg; break;
- case 'o': owner = optarg; break;
+ char *arg = NULL;
+ int attr = 0;
+
+ while ((c = getopt(argc-1,argv+1,"j:o:n:")) > 0) switch (c) {
+ case 'j':
+ if (arg) { usage("new"); return 0; }
+ attr = EDG_WLL_QUERY_ATTR_JOBID;
+ arg = optarg; break;
+ case 'o':
+ if (arg) { usage("new"); return 0; }
+ attr = EDG_WLL_QUERY_ATTR_OWNER;
+ arg = optarg; break;
+ case 'n':
+ if (arg) { usage("new"); return 0; }
+ attr= EDG_WLL_QUERY_ATTR_NETWORK_SERVER;
+ arg = optarg; break;
default: usage("new"); goto cleanup;
}
- if ((!job && !owner) || (job && owner)) {
- usage("new");
- goto cleanup;
- }
-
- if ( job && edg_wlc_JobIdParse(job, &jid) ) {
+ if ( attr == EDG_WLL_QUERY_ATTR_JOBID && edg_wlc_JobIdParse(arg, &jid) ) {
printf("Job ID parameter not set propperly!\n");
usage("new");
goto cleanup;
conditions = (edg_wll_QueryRec **)calloc(2,sizeof(edg_wll_QueryRec *));
conditions[0] = (edg_wll_QueryRec *)calloc(2,sizeof(edg_wll_QueryRec));
- conditions[0][0].attr = job ? EDG_WLL_QUERY_ATTR_JOBID : EDG_WLL_QUERY_ATTR_OWNER;
+ conditions[0][0].attr = attr;
conditions[0][0].op = EDG_WLL_QUERY_OP_EQUAL;
- if (job) conditions[0][0].value.j = jid;
- else conditions[0][0].value.c = owner;
+ if (attr == EDG_WLL_QUERY_ATTR_JOBID) conditions[0][0].value.j = jid;
+ else conditions[0][0].value.c = arg;
if ( !edg_wll_NotifNew(ctx,
(edg_wll_QueryRec const* const*)conditions,
TimeToStr(valid),
valid);
edg_wll_NotifIdFree(id_out);
- if (job) edg_wlc_JobIdFree(jid);
+ if (attr == EDG_WLL_QUERY_ATTR_JOBID) edg_wlc_JobIdFree(jid);
}
else if ( !strcmp(argv[1], "bind") )
{