mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-27 18:03:04 +01:00
80 lines
2.1 KiB
C++
80 lines
2.1 KiB
C++
/*
|
|
* PROGRAM: JRD Access Method
|
|
* MODULE: lan.c
|
|
* DESCRIPTION: OS/2 LAN manager-specific JRD routines
|
|
*
|
|
* The contents of this file are subject to the Interbase Public
|
|
* License Version 1.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy
|
|
* of the License at http://www.Inprise.com/IPL.html
|
|
*
|
|
* Software distributed under the License is distributed on an
|
|
* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
|
|
* or implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code was created by Inprise Corporation
|
|
* and its predecessors. Portions created by Inprise Corporation are
|
|
* Copyright (C) Inprise Corporation.
|
|
*
|
|
* All Rights Reserved.
|
|
* Contributor(s): ______________________________________.
|
|
*/
|
|
|
|
#include "firebird.h"
|
|
#include "../jrd/common.h"
|
|
#include <os2.h>
|
|
|
|
#define LAN_SERVERGETINFO 0
|
|
#define PROC_count 1
|
|
|
|
typedef struct {
|
|
TEXT *module;
|
|
TEXT *name;
|
|
PFN address;
|
|
} LANENTRY;
|
|
|
|
#define ENTRYNAME(module, name, address) module, name, NULL,
|
|
|
|
static LANENTRY lanentrypoints[PROC_count] = {
|
|
ENTRYNAME("NETAPI", "NETSERVERGETINFO", NETSERVERGETINFO)
|
|
};
|
|
|
|
#define CALL(proc) (lanentrypoints[proc].address)
|
|
|
|
|
|
int gethostname(SCHAR * buffer, USHORT buflen)
|
|
{
|
|
/***********************************************
|
|
*
|
|
* g e t h o s t n a m e ( M S D O S )
|
|
*
|
|
************************************************
|
|
*
|
|
* Functional description
|
|
* This function provides symmetry under OS/2
|
|
* for the UNIX gethostname system call.
|
|
*
|
|
* It first checks to see if the LANMAN library is
|
|
* accessible. If not, it returns a null string. If it
|
|
* is, it calls the NetServerGetInfo system call to provide
|
|
* the host name.
|
|
*
|
|
************************************************/
|
|
USHORT totalavail;
|
|
LANENTRY *entry;
|
|
|
|
(*entry) = lanentrypoints[0];
|
|
if (!
|
|
(entry->address =
|
|
(PFN) ISC_lookup_entrypoint(entry->module, entry->name[0], NULL))) {
|
|
buffer[0] = '\0';
|
|
}
|
|
else {
|
|
CALL(LAN_SERVERGETINFO) (NULL, 0, buffer, buflen, &totalavail);
|
|
buffer[totalavail] = '\0';
|
|
}
|
|
|
|
return 0;
|
|
}
|