/* #define HW_DEBUG */
-#define newlist
-
#include <stdlib.h>
#include "php.h"
#include "php_globals.h"
#include <fcntl.h>
#include <errno.h>
#include "hg_comm.h"
-#include "dlist.h"
#include "ext/standard/head.h"
static int set_nonblocking(int fd);
int start, int end)
#endif
{
- ANCHOR *cur_ptr, **ptr;
+ ANCHOR *cur_ptr;
#ifdef newlist
+ ANCHOR **ptr;
if(NULL == (cur_ptr = (ANCHOR *) emalloc(sizeof(ANCHOR))))
return NULL;
#else
if(ptr)
cur_ptr = *ptr;
while(ptr) {
+ fprintf(stderr, "0x%X->0x%X ", (int) ptr, (int) cur_ptr);
#else
ANCHOR *cur_ptr;
cur_ptr = (ANCHOR *) dlst_last(pAnchorList);
while(cur_ptr) {
+ fprintf(stderr, "0x%X ", (int) cur_ptr);
#endif
- fprintf(stderr, "0x%X->0x%X ", (int) ptr, (int) cur_ptr);
fprintf(stderr, "%d, %d, %s, %s, %s, %s %s\n", cur_ptr->start,
cur_ptr->end,
cur_ptr->tanchor == 1 ? "src" : "dest",
#define BUFFERLEN 200
#ifdef newlist
char *fnInsAnchorsIntoText(char *text, zend_llist *pAnchorList, char **bodytag, char *urlprefix) {
+ ANCHOR **ptr;
#else
char *fnInsAnchorsIntoText(char *text, DLIST *pAnchorList, char **bodytag, char *urlprefix) {
#endif
- ANCHOR *cur_ptr, **ptr;
+ ANCHOR *cur_ptr;
char bgstr[BUFFERLEN], istr[BUFFERLEN];
char *scriptname;
char *newtext;
int option = 1;
struct sockaddr_in server_addr;
struct hostent *hp;
- if ( (hp = gethostbyname(server_name)) == NULL ) {
+
+ if ( NULL == server_name )
return(-1);
+
+ if ( (hp = gethostbyname(server_name)) == NULL ) {
+ return(-2);
}
bzero((char *)&server_addr, sizeof(server_addr));
server_addr.sin_addr = *(struct in_addr *) hp->h_addr;
if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) == SOCK_ERR ) {
- return(-2);
+ return(-3);
}
#if defined(SUN) || (WIN32|WINNT)
if (connect(sockfd, (struct sockaddr *) &server_addr, sizeof(server_addr)) < 0) {
HWSOCK_FCLOSE(sockfd);
- return(-3);
+ return(-4);
}
#if !(WIN32|WINNT)
if ( set_nonblocking(sockfd) == -1 ) {
HWSOCK_FCLOSE(sockfd);
- return(-4);
+ return(-5);
}
return(sockfd);
if ( send_hg_msg(sockfd, &msg, length) == -1 ) {
efree(msg.buf);
- return(-1);
+ return(-2);
}
efree(msg.buf);
retmsg = recv_hg_msg(sockfd);
if ( retmsg == NULL )
- return(-1);
+ return(-3);
ptr = (int *) retmsg->buf;
if(ptr == NULL) {
if(retmsg) efree(retmsg);
- return -1;
+ return -4;
}
if(*ptr++ == 0) {
*count = (*ptr < maxhits) ? *ptr : maxhits;
efree(retmsg->buf);
efree(retmsg);
lowerror = LE_MALLOC;
- return(-1);
+ return(-5);
}
} else {
error = *((int *) retmsg->buf);
/* perror("send_command"); */
efree(childIDs);
lowerror = LE_MALLOC;
- return(-1);
+ return(-6);
}
tmp = build_msg_int(msg.buf, childIDs[i]);
if ( send_hg_msg(sockfd, &msg, length) == -1 ) {
efree(msg.buf);
efree(childIDs);
- return(-1);
+ return(-7);
}
efree(msg.buf);
}
*childrec = NULL;
lowerror = LE_MALLOC;
- return(-1);
+ return(-8);
} else {
*childrec = objptr;
*/
if(host) {
if((hostptr = gethostbyname(host)) == NULL) {
- php_error(E_WARNING, "gethostbyname failed for %s", host);
HWSOCK_FCLOSE(fd);
return(-2);
}
*/
if(host) {
if((hostptr = gethostbyname(host)) == NULL) {
- php_error(E_WARNING, "gethostbyname failed for %s", host);
HWSOCK_FCLOSE(fd);
return(-1);
}
*/
if(host) {
if((hostptr = gethostbyname(host)) == NULL) {
- php_error(E_WARNING, "gethostbyname failed for %s", host);
/* close(fd); fd is not set yet */
return(-4);
}
#if HYPERWAVE
+#define newlist
+
#include "hw_error.h"
+#ifdef newlist
+#else
+#include "dlist.h"
+#endif
#define HG_SERVER_PORT 418
#define F_DISTRIBUTED 0x80000000
typedef int hw_objectID;
typedef char hw_objrec;
+#ifdef newlist
+void fnDeleteAnchor(void *ptr1);
+void fnListAnchor(zend_llist *pAnchorList);
+zend_llist *fnCreateAnchorList(hw_objectID objID, char **anchors, char **docofanchorrec, char **reldestrec, int ancount, int anchormode);
+char *fnInsAnchorsIntoText(char *text, zend_llist *pAnchorList, char **bodytag, char *urlprefix);
+int fnCmpAnchors(const void *e1, const void *e2);
+ANCHOR *fnAddAnchor(zend_llist *pAnchorList, int objectID, int start, int end);
+#else
+void fnDeleteAnchor(ANCHOR *ptr);
+void fnListAnchor(DLIST *pAnchorList);
+DLIST *fnCreateAnchorList(hw_objectID objID, char **anchors, char **docofanchorrec, char **reldestrec, int ancount, int anchormode);
+char *fnInsAnchorsIntoText(char *text, DLIST *pAnchorList, char **bodytag, char *urlprefix);
+int fnCmpAnchors(ANCHOR *a1, ANCHOR *a2);
+ANCHOR *fnAddAnchor(DLIST *pAnchorList, int objectID, int start, int end);
+#endif
extern void set_swap(int do_swap);
extern int open_hg_connection(char *server_name, int port);
extern void close_hg_connection(int sockfd);
extern char *fnInsStr(char *str, int pos, char *insstr);
extern int fnAttributeCompare(char *object, char *attrname, char *value);
+extern char *fnAttributeValue(char *object, char *attrname);
extern int getrellink(int sockfd, int rootID, int thisID, int destID, char **reldesstr);
extern int send_deleteobject(int sockfd, hw_objectID objectID);