summaryrefslogtreecommitdiff
path: root/ext/hyperwave/hg_comm.c
diff options
context:
space:
mode:
authorUwe Steinmann <steinm@php.net>2000-11-09 13:36:54 +0000
committerUwe Steinmann <steinm@php.net>2000-11-09 13:36:54 +0000
commiteaad937f84c8bacaa425a038b4b837686c47c1f5 (patch)
tree1edfc957305ac34ccfbb8060c6895a5fe03264cb /ext/hyperwave/hg_comm.c
parentd82bade81cb5d8dfa85d95918fadfa31268d401e (diff)
downloadphp-git-eaad937f84c8bacaa425a038b4b837686c47c1f5.tar.gz
- Some more comments
- Initial support to just include anchors into documents
Diffstat (limited to 'ext/hyperwave/hg_comm.c')
-rw-r--r--ext/hyperwave/hg_comm.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/ext/hyperwave/hg_comm.c b/ext/hyperwave/hg_comm.c
index 5469446a18..b56926e89b 100644
--- a/ext/hyperwave/hg_comm.c
+++ b/ext/hyperwave/hg_comm.c
@@ -326,12 +326,17 @@ int fnCmpAnchors(ANCHOR *a1, ANCHOR *a2)
/***********************************************************************
* Function fnCreateAnchorList() *
+* Uses either docofanchorrec or reldestrec to create a list of anchors *
+* depending on anchormode *
* *
* Returns a list of Anchors converted from an object record *
* Parameter: int objectID: the object for which the list is created *
* char **anchors: object records of anchors *
-* char **dest: object records of destinations *
+* char **docofanchorrec: Name of destination absolut *
+* char **reldestrec: Name of destination relativ to current *
+* object *
* int ancount: number of anchors *
+* int anchormode: 0 = use absolut dest, else rel. dest *
* Return: List of Anchors, NULL if error *
***********************************************************************/
#ifdef newlist
@@ -2112,6 +2117,7 @@ int send_gettext(int sockfd, hw_objectID objectID, int mode, int rootid, char **
DLIST *pAnchorList;
#endif
+ /* Get dest as relative and absolut path */
send_getdestforanchorsobj(sockfd, anchors, &destrec, ancount);
send_getreldestforanchorsobj(sockfd, anchors, &reldestrec, ancount, rootid, objectID);
pAnchorList = fnCreateAnchorList(objectID, anchors, destrec, reldestrec, ancount, mode);
@@ -3366,11 +3372,17 @@ int send_getdestforanchorsobj(int sockfd, char **anchorrec, char ***destrec, int
/* Now get for each anchor the object record of its destination */
for(i=0; i<count; i++) {
/* if you retrieve the anchors you sometimes get more than actually accessible.
- This happens for the object 0x29a9c. */
+ */
if((NULL != anchorrec[i]) && (NULL != (str = fnAttributeValue(anchorrec[i], "Dest")))) {
sscanf(str, "0x%x", &objectID);
efree(str);
+ /* Using send_docbyanchorobj() makes sense because the Destination can
+ be both, an anchor or a document. If it is a document you get the
+ objectrecord of that document. If it is an anchor the function
+ graps the document which belongs to the anchor
+ and you get also the objectrecord of that document.
+ */
if(0 > send_docbyanchorobj(sockfd, objectID, &objptr)) {
efree(destptr);
return -1;
@@ -3412,6 +3424,7 @@ int send_getreldestforanchorsobj(int sockfd, char **anchorrec, char ***reldestre
sscanf(str, "0x%x", &destobjectID);
efree(str);
+ /* See note in send_getdestforanchorsobj() at same position in source code */
if(0 > send_docbyanchorobj(sockfd, destobjectID, &docofanchorptr)) {
efree(reldestptr);
return -1;
@@ -4964,8 +4977,8 @@ int send_pipedocument(int sockfd, char *host, hw_objectID objectID, int mode, in
efree(retmsg);
/* passively open the data connection. The HG server is probably
- already waiting for us.
- */
+ already waiting for us.
+ */
len = sizeof(serv_addr);
if((newfd = accept(fd, (struct sockaddr *) &serv_addr, &len)) < 0) {
/* php_printf("client: can't open data connection to server\n"); */
@@ -5016,6 +5029,7 @@ int send_pipedocument(int sockfd, char *host, hw_objectID objectID, int mode, in
DLIST *pAnchorList = NULL;
#endif
+ /* Get dest as relative and absolut path */
send_getdestforanchorsobj(sockfd, anchors, &destrec, ancount);
send_getreldestforanchorsobj(sockfd, anchors, &reldestrec, ancount, rootid, objectID);
pAnchorList = fnCreateAnchorList(objectID, anchors, destrec, reldestrec, ancount, mode);