Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
3ded6fd5
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3ded6fd5
编写于
7月 01, 1997
作者:
T
Thomas G. Lockhart
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix code to do the right thing with mixed-endian clients and servers.
上级
bf3bcb6a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
11 deletion
+15
-11
src/backend/libpq/pqcomprim.c
src/backend/libpq/pqcomprim.c
+15
-11
未找到文件。
src/backend/libpq/pqcomprim.c
浏览文件 @
3ded6fd5
...
@@ -10,10 +10,11 @@
...
@@ -10,10 +10,11 @@
/* --------------------------------------------------------------------- */
/* --------------------------------------------------------------------- */
/* Is the other way around than system ntoh/hton, so we roll our own
/* These definitions for ntoh/hton are the other way around from the
here */
* default system definitions, so we roll our own here.
*/
#ifndef BYTE_ORDER
#ifndef BYTE_ORDER
#error BYTE_ORDER must be defined as LITTLE_ENDIAN, BIG_ENDIAN or PDP_ENDIAN
#error BYTE_ORDER must be defined as LITTLE_ENDIAN, BIG_ENDIAN or PDP_ENDIAN
#endif
#endif
...
@@ -24,11 +25,13 @@
...
@@ -24,11 +25,13 @@
# define hton_l(n) n
# define hton_l(n) n
#else
/* BYTE_ORDER != LITTLE_ENDIAN */
#else
/* BYTE_ORDER != LITTLE_ENDIAN */
# if BYTE_ORDER == BIG_ENDIAN
# if BYTE_ORDER == BIG_ENDIAN
# define ntoh_s(n) (u_short)(((u_char *) &n)[0] << 8 | ((u_char *) &n)[1])
# define ntoh_s(n) (u_short)(((u_char *)&n)[1] << 8 \
# define ntoh_l(n) (u_long)(((u_char *)&n)[0] << 24 | \
| ((u_char *)&n)[0])
((u_char *)&n)[1] << 16 | \
# define ntoh_l(n) (u_long) (((u_char *)&n)[3] << 24 \
((u_char *)&n)[2] << 8 | ((u_char *)&n)[3])
| ((u_char *)&n)[2] << 16 \
# define hton_s(n) (u_short)(((u_char *) &n)[2] << 8 | ((u_char *) &n)[3])
| ((u_char *)&n)[1] << 8 \
| ((u_char *)&n)[0])
# define hton_s(n) (ntoh_s(n))
# define hton_l(n) (ntoh_l(n))
# define hton_l(n) (ntoh_l(n))
# else
/* BYTE_ORDER != BIG_ENDIAN */
# else
/* BYTE_ORDER != BIG_ENDIAN */
# if BYTE_ORDER == PDP_ENDIAN
# if BYTE_ORDER == PDP_ENDIAN
...
@@ -43,9 +46,10 @@
...
@@ -43,9 +46,10 @@
int
pqPutShort
(
int
integer
,
FILE
*
f
)
int
pqPutShort
(
int
integer
,
FILE
*
f
)
{
{
int
retval
=
0
;
int
retval
=
0
;
u_short
n
;
u_short
n
,
s
;
n
=
hton_s
(
integer
);
s
=
integer
;
n
=
hton_s
(
s
);
if
(
fwrite
(
&
n
,
sizeof
(
u_short
),
1
,
f
)
!=
1
)
if
(
fwrite
(
&
n
,
sizeof
(
u_short
),
1
,
f
)
!=
1
)
retval
=
EOF
;
retval
=
EOF
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录