0% found this document useful (0 votes)
4 views

Software Development with Go: Cloud-Native Programming using Golang with Linux and Docker Nanik Tolaram instant download

The document is a promotional and informational piece about the book 'Software Development with Go: Cloud-Native Programming using Golang with Linux and Docker' by Nanik Tolaram. It includes links to download the book and mentions other related titles available on the same platform. Additionally, it provides details about the book's content, structure, and author acknowledgments.

Uploaded by

ungoalbiss
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Software Development with Go: Cloud-Native Programming using Golang with Linux and Docker Nanik Tolaram instant download

The document is a promotional and informational piece about the book 'Software Development with Go: Cloud-Native Programming using Golang with Linux and Docker' by Nanik Tolaram. It includes links to download the book and mentions other related titles available on the same platform. Additionally, it provides details about the book's content, structure, and author acknowledgments.

Uploaded by

ungoalbiss
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 49

Software Development with Go: Cloud-Native

Programming using Golang with Linux and Docker


Nanik Tolaram pdf download

https://ebookmeta.com/product/software-development-with-go-cloud-
native-programming-using-golang-with-linux-and-docker-nanik-
tolaram/

Download more ebook from https://ebookmeta.com


We believe these products will be a great fit for you. Click
the link to download now, or visit ebookmeta.com
to discover even more!

Software Development with Go Cloud Native Programming


using Golang with Linux and Docker 1st Edition Nanik
Tolaram

https://ebookmeta.com/product/software-development-with-go-cloud-
native-programming-using-golang-with-linux-and-docker-1st-
edition-nanik-tolaram/

Network Programming with Go Language: Essential Skills


for Programming, Using and Securing Networks with Open
Source Google Golang 2nd Edition Jan Newmarch

https://ebookmeta.com/product/network-programming-with-go-
language-essential-skills-for-programming-using-and-securing-
networks-with-open-source-google-golang-2nd-edition-jan-
newmarch-2/

Network Programming with Go Language : Essential Skills


for Programming, Using and Securing Networks with Open
Source Google Golang 2nd Edition Jan Newmarch

https://ebookmeta.com/product/network-programming-with-go-
language-essential-skills-for-programming-using-and-securing-
networks-with-open-source-google-golang-2nd-edition-jan-newmarch/

Fit for a Duke Dangerous Dukes 10 1st Edition Wendy


Soliman

https://ebookmeta.com/product/fit-for-a-duke-dangerous-
dukes-10-1st-edition-wendy-soliman/
Going Global Transnational Perspectives on
Globalization Language and Education 1st Edition Leslie
Seawright

https://ebookmeta.com/product/going-global-transnational-
perspectives-on-globalization-language-and-education-1st-edition-
leslie-seawright/

PHP and MySQL 174 Web Development Luke Welling

https://ebookmeta.com/product/php-and-mysql-174-web-development-
luke-welling/

If Looks Could Kill 80 s Baby Series 2 1st Edition


Tamrin Banks

https://ebookmeta.com/product/if-looks-could-kill-80-s-baby-
series-2-1st-edition-tamrin-banks/

Her Special Alpha Hot SEALs X OPS 3 5 Paige Tyler

https://ebookmeta.com/product/her-special-alpha-hot-seals-x-
ops-3-5-paige-tyler/

Ours to Share 1st Edition Ar Taboo

https://ebookmeta.com/product/ours-to-share-1st-edition-ar-taboo/
Brand Strategy in Three Steps: A Purpose-Driven
Approach to Branding 1st Edition Jay Mandel

https://ebookmeta.com/product/brand-strategy-in-three-steps-a-
purpose-driven-approach-to-branding-1st-edition-jay-mandel/
Software Development
with Go
Cloud-Native Programming
using Golang with Linux
and Docker

Nanik Tolaram
Software Development with Go: Cloud-Native Programming using Golang
with Linux and Docker

Nanik Tolaram
Sydney, NSW, Australia

ISBN-13 (pbk): 978-1-4842-8730-9 ISBN-13 (electronic): 978-1-4842-8731-6


https://doi.org/10.1007/978-1-4842-8731-6
Copyright © 2023 by Nanik Tolaram
This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way,
and transmission or information storage and retrieval, electronic adaptation, computer software,
or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark
symbol with every occurrence of a trademarked name, logo, or image we use the names, logos,
and images only in an editorial fashion and to the benefit of the trademark owner, with no
intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if
they are not identified as such, is not to be taken as an expression of opinion as to whether or not
they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of
publication, neither the authors nor the editors nor the publisher can accept any legal
responsibility for any errors or omissions that may be made. The publisher makes no warranty,
express or implied, with respect to the material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: James Robinson-Prior
Development Editor: James Markham
Coordinating Editor: Gryffin Winkler
Copy Editor: Mary Behr
Cover designed by eStudioCalamar
Cover image designed by Freepik (www.freepik.com)
Distributed to the book trade worldwide by Springer Science+Business Media New York, 1
New York Plaza, Suite 4600, New York, NY 10004-1562, USA. Phone 1-800-SPRINGER, fax (201)
348-4505, e-mail [email protected], or visit www.springeronline.com. Apress Media,
LLC is a California LLC and the sole member (owner) is Springer Science + Business Media
Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail [email protected]; for
reprint, paperback, or audio rights, please e-mail [email protected].
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook
versions and licenses are also available for most titles. For more information, reference our Print
and eBook Bulk Sales web page at www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is
available to readers on GitHub (https://github.com/Apress). For more detailed information,
please visit www.apress.com/source-code.
Printed on acid-free paper
I would like to dedicate this book to my late Dad who stood
by me and encouraged me to write my very first book when
I was 17 years old. To my dearest Mum who always
supported me in pursuing my dreams and encouraged me
to keep on going no matter what life brings. To my beautiful
wife and best friend for allowing me the time to write the
book and supporting me in every step of our life. To both my
sons, Rahul and Manav, for allowing me to spend time in
front of the computer on weekends to chase my dream and
passion. Last but not least, to God for giving me this life and
opportunity to be where I am in this world.
Table of Contents
About the Author�������������������������������������������������������������������������������xiii

About the Technical Reviewer������������������������������������������������������������xv

Acknowledgments����������������������������������������������������������������������������xvii

Introduction���������������������������������������������������������������������������������������xix

Part I: System Programming������������������������������������������������1


Chapter 1: System Calls�����������������������������������������������������������������������3
Source Code����������������������������������������������������������������������������������������������������������3
What Is a System Call?�����������������������������������������������������������������������������������������4
C System Call��������������������������������������������������������������������������������������������������������5
sys/unix Package��������������������������������������������������������������������������������������������������8
System Call in Go������������������������������������������������������������������������������������������������������� 10
Summary������������������������������������������������������������������������������������������������������������14

Chapter 2: System Calls Using Go������������������������������������������������������15


Source Code��������������������������������������������������������������������������������������������������������15
Syscall Package��������������������������������������������������������������������������������������������������16
syscall Application����������������������������������������������������������������������������������������������������� 16
Checking Disk Space������������������������������������������������������������������������������������������������� 18
Webserver with syscall���������������������������������������������������������������������������������������������� 20

v
Table of Contents

ELF Package�������������������������������������������������������������������������������������������������������22
High-Level ELF Format���������������������������������������������������������������������������������������������� 23
Dump Example���������������������������������������������������������������������������������������������������������� 24

/sys Filesystem���������������������������������������������������������������������������������������������������28
Reading AppArmor����������������������������������������������������������������������������������������������������� 29

Summary������������������������������������������������������������������������������������������������������������31

Chapter 3: Accessing proc File System����������������������������������������������33


Source Code��������������������������������������������������������������������������������������������������������33
Peeking Inside procfs������������������������������������������������������������������������������������������34
Reading Memory Information�����������������������������������������������������������������������������38
Peeking Network Information������������������������������������������������������������������������������������ 41

Using the procfs Library��������������������������������������������������������������������������������������44


Code Sample������������������������������������������������������������������������������������������������������������� 44
Inside the procfs Library�������������������������������������������������������������������������������������������� 46

Summary������������������������������������������������������������������������������������������������������������48

Part II: Containers���������������������������������������������������������������49


Chapter 4: Simple Containers�������������������������������������������������������������51
Linux Namespace������������������������������������������������������������������������������������������������51
cgroups���������������������������������������������������������������������������������������������������������������55
rootfs�������������������������������������������������������������������������������������������������������������������58
Gontainer Project������������������������������������������������������������������������������������������������63
Summary������������������������������������������������������������������������������������������������������������70

vi
Table of Contents

Chapter 5: Containers with Networking���������������������������������������������71


Source Code��������������������������������������������������������������������������������������������������������71
Network Namespace������������������������������������������������������������������������������������������������� 72
Setting Up with the ip Tool����������������������������������������������������������������������������������������� 74
Containers with Networks����������������������������������������������������������������������������������������� 79
Summary������������������������������������������������������������������������������������������������������������������� 88

Chapter 6: Docker Security�����������������������������������������������������������������89


Source Code��������������������������������������������������������������������������������������������������������89
seccomp Profiles������������������������������������������������������������������������������������������������89
libseccomp���������������������������������������������������������������������������������������������������������������� 91
Docker seccomp�������������������������������������������������������������������������������������������������������� 95

Docker Proxy�������������������������������������������������������������������������������������������������������98
Container Attack Surface����������������������������������������������������������������������������������105
Summary����������������������������������������������������������������������������������������������������������106

Part III: Application Security��������������������������������������������109


Chapter 7: Gosec and AST����������������������������������������������������������������111
Source Code������������������������������������������������������������������������������������������������������111
Abstract Syntax Tree�����������������������������������������������������������������������������������������111
Modules������������������������������������������������������������������������������������������������������������������� 115
Sample Code����������������������������������������������������������������������������������������������������������� 116

gosec����������������������������������������������������������������������������������������������������������������122
Inside gosec������������������������������������������������������������������������������������������������������������ 123
Rules������������������������������������������������������������������������������������������������������������������������ 128

Summary����������������������������������������������������������������������������������������������������������130

vii
Table of Contents

Chapter 8: Scorecard������������������������������������������������������������������������131
Source Code������������������������������������������������������������������������������������������������������131
What Is Scorecard?�������������������������������������������������������������������������������������������131
Setting Up Scorecard����������������������������������������������������������������������������������������������� 133
Running Scorecard�������������������������������������������������������������������������������������������������� 137
High-Level Flow������������������������������������������������������������������������������������������������������� 139

GitHub���������������������������������������������������������������������������������������������������������������145
GitHub API���������������������������������������������������������������������������������������������������������������� 145
GitHub Explorer�������������������������������������������������������������������������������������������������������� 156

Summary����������������������������������������������������������������������������������������������������������159

Part IV: Networking����������������������������������������������������������161


Chapter 9: Simple Networking����������������������������������������������������������163
Source Code������������������������������������������������������������������������������������������������������163
TCP Networking������������������������������������������������������������������������������������������������163
TCP Client���������������������������������������������������������������������������������������������������������������� 164
TCP Server��������������������������������������������������������������������������������������������������������������� 166

UDP Networking������������������������������������������������������������������������������������������������168
UDP Client���������������������������������������������������������������������������������������������������������������� 169
UDP Server�������������������������������������������������������������������������������������������������������������� 172
Concurrent Servers�������������������������������������������������������������������������������������������������� 174

Load Testing������������������������������������������������������������������������������������������������������175
Summary����������������������������������������������������������������������������������������������������������179

Chapter 10: System Networking�������������������������������������������������������181


Source Code������������������������������������������������������������������������������������������������������181
Ping Utility���������������������������������������������������������������������������������������������������������181
Code Walkthrough��������������������������������������������������������������������������������������������������� 182

viii
Table of Contents

DNS Server��������������������������������������������������������������������������������������������������������188
Running a DNS Server��������������������������������������������������������������������������������������������� 188
DNS Forwarder�������������������������������������������������������������������������������������������������������� 189
Pack and Unpack����������������������������������������������������������������������������������������������������� 193
Summary����������������������������������������������������������������������������������������������������������196

Chapter 11: Google gopacket������������������������������������������������������������199


Source Code������������������������������������������������������������������������������������������������������199
gopacket�����������������������������������������������������������������������������������������������������������200
Layer������������������������������������������������������������������������������������������������������������������������ 200
Packet���������������������������������������������������������������������������������������������������������������������� 204

Using gopacket�������������������������������������������������������������������������������������������������205
pcap������������������������������������������������������������������������������������������������������������������������� 205
Networking Sniffer�������������������������������������������������������������������������������������������������� 206
Capturing With BPF�������������������������������������������������������������������������������������������������� 217

Summary����������������������������������������������������������������������������������������������������������222

Chapter 12: Epoll Library������������������������������������������������������������������223


Source Code������������������������������������������������������������������������������������������������������224
Understanding epoll������������������������������������������������������������������������������������������224
epoll in Golang��������������������������������������������������������������������������������������������������226
Epoll Registration���������������������������������������������������������������������������������������������������� 227
Epoll Wait����������������������������������������������������������������������������������������������������������������� 229

Epoll Library������������������������������������������������������������������������������������������������������232
Summary����������������������������������������������������������������������������������������������������������235

ix
Table of Contents

Part V: Securing Linux������������������������������������������������������239


Chapter 13: Vulnerability Scanner����������������������������������������������������239
Source Code������������������������������������������������������������������������������������������������������239
Vulnerability Scanners��������������������������������������������������������������������������������������240
Using Vuls���������������������������������������������������������������������������������������������������������241
Checking Out the Code�������������������������������������������������������������������������������������������� 241
Running Scan���������������������������������������������������������������������������������������������������������� 243

Learning From Vuls�������������������������������������������������������������������������������������������248


Port Scan����������������������������������������������������������������������������������������������������������������� 248
Exec������������������������������������������������������������������������������������������������������������������������� 255
SQLite���������������������������������������������������������������������������������������������������������������������� 257

Summary����������������������������������������������������������������������������������������������������������263

Chapter 14: CrowdSec����������������������������������������������������������������������265


Source Code������������������������������������������������������������������������������������������������������265
CrowdSec Project����������������������������������������������������������������������������������������������266
Using CrowdSec������������������������������������������������������������������������������������������������������ 266
crowdsec.db������������������������������������������������������������������������������������������������������������ 270

Learning From CrowdSec���������������������������������������������������������������������������������273


System Signal Handling������������������������������������������������������������������������������������������� 274
Handling Service Dependencies������������������������������������������������������������������������������ 280
GeoIP Database������������������������������������������������������������������������������������������������������� 285

Summary����������������������������������������������������������������������������������������������������������290

x
Table of Contents

Part VI: Terminal User Interface���������������������������������������293


Chapter 15: ANSI and UI�������������������������������������������������������������������293
Source Code������������������������������������������������������������������������������������������������������293
ANSI Escape Code���������������������������������������������������������������������������������������������294
ANSI-Based UI���������������������������������������������������������������������������������������������������296
Color Table��������������������������������������������������������������������������������������������������������������� 296
Styling Text�������������������������������������������������������������������������������������������������������������� 299

Open Source Library�����������������������������������������������������������������������������������������300


Gookit���������������������������������������������������������������������������������������������������������������������� 300
Spinner�������������������������������������������������������������������������������������������������������������������� 303

Summary����������������������������������������������������������������������������������������������������������306

Chapter 16: TUI Framework��������������������������������������������������������������307


uiprogress���������������������������������������������������������������������������������������������������������307
Code Flow���������������������������������������������������������������������������������������������������������������� 309
Updating Progress��������������������������������������������������������������������������������������������������� 310

Bubbletea����������������������������������������������������������������������������������������������������������313
Init��������������������������������������������������������������������������������������������������������������������������� 315
Update��������������������������������������������������������������������������������������������������������������������� 318
View������������������������������������������������������������������������������������������������������������������������� 319

Summary����������������������������������������������������������������������������������������������������������321

Part VII: Linux System������������������������������������������������������325


Chapter 17: systemd�������������������������������������������������������������������������325
Source Code������������������������������������������������������������������������������������������������������325
systemd������������������������������������������������������������������������������������������������������������������� 325
systemctl����������������������������������������������������������������������������������������������������������������� 329
Hello Server systemd���������������������������������������������������������������������������������������������� 332

xi
Table of Contents

go-systemd Library������������������������������������������������������������������������������������������������� 334


Summary����������������������������������������������������������������������������������������������������������������� 345

Chapter 18: cadvisor������������������������������������������������������������������������347


Source Code������������������������������������������������������������������������������������������������������347
Running cAdvisor����������������������������������������������������������������������������������������������347
Web User Interface��������������������������������������������������������������������������������������������352
Architecture������������������������������������������������������������������������������������������������������355
Initialization�������������������������������������������������������������������������������������������������������357
Manager������������������������������������������������������������������������������������������������������������361
Monitoring Filesystem��������������������������������������������������������������������������������������368
Information from /sys and /proc�����������������������������������������������������������������������371
Client Library�����������������������������������������������������������������������������������������������������375
Summary����������������������������������������������������������������������������������������������������������375

Index�������������������������������������������������������������������������������������������������377

xii
About the Author
Nanik Tolaram is a big proponent of open source software with over 20
years of industry experience. He has dabbled in different programming
languages like Java, JavaScript, C, and C++. He has developed different
products from the ground up while working in start-up companies. He is
a software engineer at heart, but he loves to write technical articles and
share his knowledge with others. He learned to program with Go during
the COVID-19 pandemic and hasn’t looked back.

xiii
About the Technical Reviewer
Fabio Claudio Ferracchiati is a senior consultant and a senior
analyst/developer using Microsoft technologies. He works for BluArancio
(www.bluarancio.com). He is a Microsoft Certified Solution Developer for
.NET, a Microsoft Certified Application Developer for .NET, a Microsoft
Certified Professional, and a prolific author and technical reviewer.
Over the past ten years, he’s written articles for Italian and international
magazines and coauthored more than ten books on a variety of
computer topics.

xv
Acknowledgments
Thanks to everyone on the Apress team who helped and guided me so
much. Special thanks to James Robinson-Prior who guided me through
the writing process and to Nirmal Selvaraj who made sure everything was
done correctly and things were on track.
Thanks to the technical reviewers for taking time from their busy
schedules to review my book and provide great feedback.
Finally, thanks to you, the reader, for spending time reading this book
and spreading the love of Go.

xvii
Another Random Scribd Document
with Unrelated Content
men whom Hogal was to engage, to bring up our party to |9| ten
people, so that we might be prepared to deal with any small band of
marauding dervishes. Hogal was to purchase camels from the
Ababdeh, who possessed, and probably still do, the best camels for
the description of journey we were undertaking. He was to take
them into the desert to test their powers of endurance, as, from the
route chosen, they might have to travel fifteen days without water.
He was also to purchase extra camels to carry water, so that if the
necessity arose, we could strike further west into the desert than
arranged for, and be able to keep away from the wells for thirty
days. We were to take with us only such articles as were essential
for the journey; food, arms and ammunition, three hundred dollars
in cash, and our presents of watches, silks, jewellery, pipes, and
ornaments for the sheikhs we met.
Hogal was to leave Derawi on or about the 20th March, and
bringing the camels through the desert on the west of the Nile, was
so to time his last stage as to reach Wadi Halfa at sunset on the
26th or 27th. The guides, my clerk, servant, and myself were to slip
over by boat, and our caravan was to strike off west at once. Our
departure was to be kept as secret as possible.
On my reaching Shellal after leaving Hogal at Derawi, I was
overtaken by an old friend, Mohammad Abdel Gader Gemmareeyeh,
who, having learned in confidence from Hogal the reason for his
purchasing the camels, hurried after me to warn me against
employing Gabou as guide, as he knew the man was not to be
trusted. He told me that Gabou was acting |10| as spy for friend and
foe, and was being paid by both, but this I did not then credit. I
laughed at the man’s expressed fears, and telling him that as Hogal
and I were to direct the caravan, and Gabou was to accompany us
as guide, I had no intention of abandoning a journey, at the end of
which a small fortune awaited me. I knew very well that not a single
person was to be trusted out of sight and hearing, but as there was
no reason why Gabou should not be kept within both, there was
equally no reason why I should have any fears. Besides this, I was
vain enough to believe that perhaps I might, as a result of my
journey, be able to hand to the military authorities a report of some
value, and the halo of romance, which still hung over everything
Soudanese, was in itself no little attraction.
I reached Wadi Halfa about March 23, and set to work quietly with
final arrangements. Hasseena had elected to accompany us, and this
on the suggestion of Hogal, his reasons being first, that being
accompanied by a woman, the peaceful intentions of our little
caravan would be evidenced; secondly, that Hasseena, when the
slave of her old master of the Alighat Arabs, had on a number of
occasions made the journey between El Obeid, Dongola, and
Derawi, and would be of great use to us in hareems in very much
the same way that a lady in civilized countries, having an entrée to a
salon, is occasionally able to further the interests of her male
relatives or friends; and in the East, all women have the entrée to
hareems.
The morning after my arrival at Wadi Halfa I |11| heard that forty
of Sheikh Saleh’s men, led by one of his slaves, Ismail, had already
arrived to take over the arms and ammunition. Gabou came to me
the same day, and suggested our abandoning the proposed
expedition, as he was afraid that the dervishes might hear of Saleh’s
men coming in, and send out bands to intercept the caravan on its
return, and we might fall into the hands of one of them. Believing
that Gabou was simply trying to induce me to add to his
remuneration for the extra risks, I told him I should hold him to his
agreement. A day or two later, seeing that I was determined to go
on, he suggested that we should, for safety, accompany Saleh’s
men, but this I objected to. The Kabbabish were fighting the
dervishes, and lost no opportunity of pouncing down upon any small
bands, and I had no particular wish to look for more adventures
than my expedition itself was likely to provide. There was also the
question of time; Sheikh Saleh’s baggage camels would only move at
the rate of about a mile an hour, while ours would cover two and a
half to three miles easily.
On March 24, I received a telegram from Hogal, then at Assouan,
announcing his arrival there with the camels, and his intention to
come on at once, so that he should have reached Wadi Halfa on the
28th or 29th of the month. Gabou now exhibited particular anxiety
that we should join Saleh’s party, and took upon himself to make an
arrangement with them. On my remonstrating with him, he said that
if the dervishes were on the road, they would certainly be met with
between Wadi Halfa and the Selima Wells, |12| or, maybe, at the
wells themselves, and this was the only part of our route where
there was any likelihood of our coming in contact with them, our
road, after Selima, being well to the west. “Now,” said he, “if Saleh’s
caravan goes off, and the dervishes on the road are not strong
enough to attack, they will allow the caravan to pass, but wait about
the roads either in the hope of getting reinforcements in time to
attack, or with the hope of attacking any smaller parties.” He
believed the dervishes might go on to the wells, and encamp there,
so that in either case we should fall into their clutches. It was
Gabou’s opinion that Sheikh Saleh’s caravan was strong enough to
annihilate the dervish bands, which he now said he had heard were
actually on the road. This decided me. I asked him why he had not
told me of this before. He had forgotten to do so!
The 28th, 29th, 30th, and 31st of the month passed, and still no
appearance of Hogal and the camels. Ismail was impatient to be off,
and Gabou suggested, that as my camels must be close at hand,
Hasseena, Elias, El Amin and I should start with Saleh’s caravan, he
following us as soon as our camels arrived. My camels being in good
condition, and unloaded, would, he said, overtake the caravan in a
few hours, and he was very anxious to test them for trotting speed
while overtaking us. We were joined at Wadi Halfa by about twenty
Arabs of different tribes, bringing our caravan up to sixty-four men
and about a hundred and sixty camels. Gabou gave us as guide for
Selima, a man named Hassan, also of the |13| Dar Hamads. Crossing
to the western bank of the Nile early on the morning of April 1,
1887, by ten o’clock we had loaded up and started on that journey
to the Soudan, which was to take me twelve long years to complete.
When we had been two days on the road, I began to feel a little
uneasy at the non-appearance of my camels; but thinking that
maybe Gabou had purposely delayed starting so as to give them a
stiff test in hard trotting, I comforted myself with this reflection,
though as day after day passed, my anxiety became very real. On
the night of April 7, we judged we must be close to Selima Wells,
and sent out scouts to reconnoitre; they reached the wells, and
returned saying that they could not find traces of any one having
been there for some time. Our caravan reached the wells between
nine and ten o’clock in the morning, and about midday, while we
were occupied in watering the camels and preparing food, we heard
a shot fired from the south-east, and shortly afterwards one of our
scouts came in saying that he had been sighted by a party of about
twenty men on camels; one of the men had fired at him at long
range, and the whole party had then hurried off to the south.
A hurried conference was held; it was the general opinion that this
party must be scouts of a larger one, and that they had gone off for
the purpose of apprising their main body. Ismail decided upon
pushing on at once. There was little time for me to consider what to
do; to return to Wadi Halfa was out of the question, as Ismail could
not spare any of his men as a |14| bodyguard; to wait at the wells
was not to be thought of, and the only other alternative was to go
on with the caravan. I told Elias to write out short notes for Hogal
and Gabou, which I had intended to leave at the wells; but as Ismail
pointed out, I should have to leave them conspicuously marked in
some way to attract attention, and, if the dervishes got to the wells
first, or if those we had seen returned with others, they would be
the first to get the notes, which would endanger our caravan, and
the little party I was so anxiously expecting. There was nothing for it
but to go on and hope for the best. If the worst came to the worst,
it meant only that my gum expedition was temporarily delayed, and
that I should, after reaching Sheikh Saleh, take my first opportunity
of getting north again.
Map showing Proposed Route and Route actually taken by Caravan
see better image
CHAPTER II
B E T R AY E D B Y G U I D E S

There are five caravan routes running from Selima Wells—that


furthest west leading to El Kiyeh, the next to El Agia, and the one in
the centre leading to the Nile near Hannak, with a branch running to
Wadi el Kab. Our objective being to meet Sheikh Saleh at Gebel Ain,
we should have taken the route leading to El Agia, and this we had
selected, because, as it was well out in the desert, there was little
likelihood of our encountering any roving bands of dervish robbers.
When we had been on the road a few hours, I ventured the opinion
that we had taken the wrong route, and a halt was called while I
examined the map I had with me, after which examination I felt
certain that we were marching in the wrong direction. The guide
Hassan was equally certain that we were on the El Agia road. A
discussion ensued, which was ended by Hassan telling me, with
what he intended to be withering sarcasm, “I never walked on
paper” (meaning the map); “I have always walked on the desert. I
am the guide, and I am responsible. The road you want us to go by
leads to El Etroun (Natron district), |16| sixty marches distant; if we
take your road and we all die of thirst in the desert, I should be held
responsible for the loss of the lives, and your paper could not speak
to defend me.” Hassan’s dramatic description of the scene of his
being blamed by the Prophet for losing these valuable lives if he
trusted to a “paper,” had more to do with his gaining his point than
pure conviction as to whether we were on the right road or not.
From El Agia, as Saleh’s men said, they knew every stone on the
desert, but in this part they had to trust to Hassan.
During the whole of this first day we forced the baggage camels
on at their best pace, travelling by my compass in a south and
south-easterly direction. The arrangement I had made with Gabou
for my own caravan, which arrangement Ismail had agreed to when
Gabou suggested our travelling with them, was that we should travel
a little to the west of the El Agia camel tracks, but keep parallel to
them. When we halted that night I spoke to Ismail about this, and
asked him to keep to this part of the agreement—that is to say, to
travel parallel to, and not on, the track. Hassan objected, as it meant
slower travelling. Still pressing on after a short rest, Hassan
zigzagged the caravan over stony ground with the object of losing
our trail, as our caravan, consisting of about 160 camels, was an
easy one to track up.
We travelled fast until mid-day of the 10th, when we were obliged
to take a rest owing to the extreme heat. We were in an arid waste;
not the slightest sign of vegetation or anything living but |17|
ourselves to be seen anywhere. Off again at sunset, we travelled the
whole night through, my compass at midnight showing me that we
were, if anything, travelling towards the east, when our direction
should certainly have been south-west. At our next halt I spoke to
Ismail again, but Hassan convinced him of his infallibility in desert
routes. The following morning, the 11th, there was no disguising the
fact about our direction: the regular guides travel by the stars at
night-time, but they laugh at the little niceties between the cardinal
points, as Hassan laughed at me when I tried to get him to believe
in the sand diagram I showed him, with the object of proving to him
that a divergence increases the further you get away from the
starting-point. El Amin now joined me in saying that he thought we
were on the wrong road, but Hassan was prepared. He had, he said,
during the night, led us further into the desert to again break our
trail, and that he was now leading us to the regular road. El Amin
replied that it was his opinion that Hassan had lost the road in the
night, and now was trying to find it. This led to a lively discussion
and an exchange of compliments, which almost ended in a nasty
scuffle, as some were siding with Hassan and others with El Amin.
Acting upon my advice, men were sent out east and west to pick
up the regular caravan route. Hassan declared that a branch of the
regular road would be found to the east, Amin and I declared for the
west. Hassan took two men east, and Amin, accompanied by two
others, went west. About an hour after sunset |18| both parties
returned. El Amin arrived first, and reported that they had failed to
find any trace of the road. Hassan came shortly afterwards, and,
having heard before reaching Ismail of the failure of the others,
came up to us jubilant and triumphant, as a road had been picked
up where he said it would. They had not only picked up the road,
but had come to the resting-place of a caravan of fifteen to twenty
camels, which could only be a few hours ahead of us, as the embers
of the caravan’s fire places were still hot. I judged it best to be silent
on the subject of the route now, though Amin, jibed and scoffed at
by the victorious Hassan, was loud in his declarations that we were
on the wrong route, and that Hassan had lost his way; this nearly
led to trouble again between him and the two men who had
accompanied Hassan, as they considered their word doubted.
We travelled east during the night, and crossed the road which
Hassan had, during the day, picked up. But there was a feeling of
uncertainty and unrest in the caravan. One after another appealed to
me, and I could but say that I was still convinced my “paper” was
right and Hassan wrong. El Amin, pricked to the quick, spread
through the caravan his opinion that Hassan had not lost his way,
but was deliberately leading us in the wrong direction. When we
halted on the 12th, Ismail, noticing the gossiping going on, and the
manner of his men, decided upon sending out scouts to the east to
see if they could pick up anything at all in the way of landmarks. El
Amin joined the scouts, who were absent the whole day. They |19|
returned at night with the news that we were nearer the river than
El Agia Wells, and on this, our fourth day from Selima, we should
have been close to El Agia. This report, coming not from El Amin
only, but from Saleh’s own people who knew the district, created
consternation. Again the “paper” was called for, and on this occasion
Hassan was told that the paper knew better than he did.
That night scene of betrayed men, desperate, with death from
thirst or dervish swords a certainty, can be better imagined than
described. There had been no husbanding of the drinking-water, and
it was almost out; many, in the hurry of departure from Selima, had
not filled their water-skins. There was no doubt now that we were,
as I had said from the beginning, on the road to Wadi el Kab, and
travelling in the enemy’s country. But Hassan, threatened as he was,
had still one more card to play. He acknowledged that he had lost
his way, but said this was not altogether his fault; we, he said, had
been travelling hard, and, feeling sure he was on the right track, he
had been careless, or had neglected to look out for the usual marks,
and that this was because Amin and I had annoyed him at the
beginning of the march, as to the road. He now said that we were
well to the west of El Kab, and on its extreme limits where the wady
disappeared into desert water could be found, and being so far west,
it was most improbable that we should find any dervishes there.
Another council was held. Hassan was for continuing in an easterly
direction; I proposed west, |20| believing now that the wady would
be found to the west; while Ismail, advised by Amin, elected for a
southerly direction. At last it was agreed that Ismail, Hassan, and
some men should ride hard in a south-westerly direction, in the
hopes of picking up some branch caravan route leading to El Agia.
The remainder of the caravan, with myself and Amin, were to travel
easily in a southerly direction for five hours, and then halt and await
the return to us of Ismail.
We halted between three and four in the afternoon, but no sooner
had we done so, when a heavy sandstorm burst upon us. There are
varieties of sandstorms as there are of most other things, but this
was one of the worst varieties. The air becomes thick with the finest
particles, which gives one more the idea of a yellow fog in the north
than of anything else I might liken it to. We were obliged to wrap
our own and the camels’ heads in cloths and blankets to protect
ourselves, if not from suffocation, from something very near it. The
storm lasted until after sunset, and as it must have obliterated all
traces of our tracks, scouts were sent out to sight Ismail. Up till
midnight no signs of him were forthcoming. Breaking up what camel
saddles we could spare, we lit fires to attract his attention to our
position, and as these burned low, shots were fired at intervals of
five minutes. After ten or twelve shots had been fired, I
recommended that volleys of five should be fired at the same
intervals, and when I believe six had been fired, we heard Ismail
calling to us from the darkness. He had encountered the sandstorm,
but evidently had had |21| a worse time of it than we had. He had
heard our volleys, and had replied with single shots, but these we
had not heard.
On reaching the caravan, Ismail ordered the fires to be put out,
and the camels to be at once loaded and their fastenings well looked
to. The rifles were cleared of the sand which had accumulated on
them, and Ismail went round inspecting everything for himself. I
called him aside and asked him what he had discovered. He
whispered one word, “Treachery,” and returned to his inspection of
the animals. When he had satisfied himself of the arms being in
readiness, and the cases so secured that if the camels bolted they
would not be able to throw off their load very easily, he gave the
orders to march. Ignoring Hassan completely, he led us west,
sending out as scouts, on fast camels, Darb es Safai and El Amin,
my guide; but at sunrise they came back to us, saying that not a
trace of road could be found.
I cannot weary my readers with a day-to-day record of our
zigzagging in the desert—one day Hassan in the ascendant as guide,
another day El Amin, and from this time I cannot pretend to
remember the exact day on which particular incidents happened.
There were too many incidents to attempt a complete record, even
with a diary, had I kept one.
El Amin had confided to me and Ismail his firm conviction that
Hassan was doing all this purposely, and that he knew precisely
whereabouts we were, as he had noticed him making some sort of
calculations, and drawing lines with his camel-stick in the sand. |22|
Perhaps it was because I did not wish to, that I could not credit
the implied treachery. Gabou and Hassan belonged to the Kabbabish
tribe, and as the rifles and ammunition we were carrying were to
assist Sheikh Saleh to fight the common enemy, what object could
there be in betraying us? Saleh’s men would certainly fight to the
death; betrayer and betrayed would run equal risks of being killed—
indeed, the betrayer would almost certainly be killed instantly by
those he was leading. I therefore dismissed the idea from my head,
took it for granted that the man had actually lost his way, and
declined to fall in with El Amin’s suggestion to say “good-bye” to the
caravan, make straight for the Nile, and take our chances of passing
clear as merchants, should we meet any people on the road.
Sketch accompanying author’s account of capture
see better image

On, I believe, our sixth day out from Selima, we crossed a caravan
route running east and west, and, referring to my map, I had no
hesitation in telling Ismail that this must be the caravan route
between El Kab and El Agia, but on which part of the road we were I
could not imagine. I wanted to attempt travelling along this road,
but Hassan declared it led to El Kiyeh. That we must now be close to
Wadi el Kab, every one knew. A “council of war” was held, at which
it was decided to risk going on, as we must be travelling towards the
wells on the extreme edge of the wady. We were to try and pick up
the wells, water the camels, fill our skins, and then strike direct west
and encamp at night-time, not to remain near the wells. While we
were discussing the situation, some |23| men had been sent along
the road to try and discover anything in the way of marks or tracks
which would give an idea as to our exact position, and they reported
that there could be little doubt of this being El Kiyeh road, and that
El Kiyeh must be six days distant. This news decided us. Our water-
supply was out. A six days’ march over that desert under such
conditions meant perishing of thirst, and there was, again, the
uncertainty as to whether we should be, after all, on the road to El
Kiyeh or El Etroun.
One of the camels was ailing, so it was decided to kill it, and let
the men have a good meal of meat. Early the next day, I believe our
eighth or ninth day from Selima, an Alighat Arab was sent scouting
to the west; he never returned. We halted and waited for his return
as arranged, and lost the night’s travel in consequence. On the
following day, unmistakable landmarks were picked up, which proved
that we were but a few hours distant from the Wadi el Kab, and it
was believed we could reach the wells by sunset. Unloading the
camels, and leaving four men in charge of the baggage, we started
off for the wells, expecting to return the same night. We travelled
without incident until about two o’clock in the afternoon, when we
reached the broken ground skirting the wady proper. My guide, El
Amin, and two men, had been sent on ahead to reconnoitre. The
place is dotted with sand-dunes and hillocks from fifty to a hundred
feet high, and on nearing the first hillock, and when approximately
at “A,” we heard a shot fired. El Amin and his companions had then
reached the spot |24| marked “G” on the accompanying plan; we
believed the shot to be a signal that they had found water, and
pressed on until we reached “B,” when shot after shot was fired, the
bullets whistling over our heads. At this moment we saw Amin and
his companions hurrying back to us. Next came some broken volleys,
but all the shots were high. Up to now we had not seen our
assailants, but the smoke from the rifles now discovered their
whereabouts—the hillock marked “C.”
I was slightly ahead of the main body, with Hassan, the guide,
some yards away on my right. Being mounted on a large white
camel, well caparisoned, and wearing a bright silk Kofeyeh on my
head, I offered an excellent mark, and shot after shot whistled over
me. I was turning my camel round to hurry back to the main body,
when I saw Hassan fall to the ground. Calling to my clerk Elias, who
was nearest to him, to help him back on the camel, or make the
camel kneel to cover him, I tried to get mine to kneel so that I could
dismount, but the brute was startled and restive. Elias called out
that Hassan was “mayat khaalass” (stone dead). Our men were now
quickly dismounting and loading their rifles. Bullet after bullet and
volley after volley came, but no one was struck as yet except
Hassan. Making the camels kneel, as a precaution against their
bolting, we advanced in open order towards the hillock from whence
the shots came, I on the extreme left, Ismail in the centre, and Darb
es Safai on the right. Rounding the hillock “C,” we caught the first
glimpse of the enemy, about fifty strong, and then rapidly retiring.
|25| We fired a volley into them, on which they turned and replied,
and a pretty hot fusilade was kept up for some minutes, but the
firing was wild on both sides. I saw two of our men fall, and about
eight to ten of the dervishes. Picking up their dead or wounded, they
hurried off again, leaving two camels behind. Darb es Safai, who
was leading the right, and was now well in advance, was the first to
reach the camels, and discovered that they were loaded with filled
water-skins. Calling out, “Moyia lil atshan;* Allah kereem!” (“Water
for the thirsty; God is generous!”), he commenced to unfasten the
neck of one of the skins. A mad rush was made for the water; arms
were thrown down, and the men struggled around the camels for a
drink. I tried for a few seconds, when I reached them, to counsel
moderation, knowing the effect of a copious draught on the system
under the circumstances and condition they were in. Some of the
men had been three days without water, and the camel flesh they
had eaten had not improved matters.
* Moyia lil atshan.
(Water for the thirsty.)
While the struggle was still in progress, Hasseena, who with Elias
had followed us up, ran to me saying that the dervishes were
returning, and, looking in the direction of “E,” I saw about a hundred
and fifty men advancing at a rapid pace. I raised the alarm, and
Ismail gave the call to arms; but few heard his voice in the din.
Those few fired a few shots, but it was now too late; in a moment
the dervishes were upon us, friend and foe one struggling mass.
Above the noise could be heard the voice of the dervish leader
reminding |26| his men of some orders they had received, and to
“secure their men alive.” Even in that moment it flashed upon me
that we had been led into an ambush, else why the reference to “our
master’s orders” given by their leader? Elias, Hasseena, and I ran
towards “F” to take cover; it was no use my using my fowling-piece
on that struggling mass, as I should have struck friend and foe. Just
as we reached the base of the hillock, Elias was captured, and the
five or six dervishes who had pursued us occupied themselves with
examining the contents of the bag he was carrying—my three
hundred dollars, jewellery, etc. They gave a mere glance towards
me, and then moved off.
Pushing a few stones together, I laid out my cartridges, reloaded
my revolvers, and prepared to die fighting. Ismail, the leader of our
caravan, had by some means managed to get clear of the mass,
and, reaching my camel, mounted it and rode off, riding hard to the
right of “F.” Seeing Hasseena and me, he called to us to try and
secure camels and follow him up. Hasseena on this ran down the
hillock; I had not noticed her disappearance from the immediate
vicinity of the hillock, as I was too much occupied hurriedly making
my diminutive zareeba of stones. Glancing over the stones later, I
was astonished to see her walking at the head of the dervishes who
had secured Elias, they following in Indian file. Hasseena called out
that I was given quarter, and that I was to stand up unarmed. This I
refused to do, and as they kept advancing, I kept my gun pointed at
them from between the stones. Hasseena again called out, |27|
saying that they had orders not to hurt me, in evidence of which
they fired their rifles into the air, and then laid them on the sand.
By this time I could see that our men were bound, and grouped
together on the plain; I left my cover, descended the hillock, and
advanced to the dervishes, when I was saluted with yells and cries
of “El Kaffir, El Kaffir” (“the unbeliever”). One, maybe more fanatical
than the rest, after vituperating me, made a motion as if to strike at
my head with his sword. Looking him in the eyes, I asked, “Is this
the word of honour (meaning quarter) of your Prophet and master;
you liar, you son of a dog? strike, unclean thing!” While, as is only to
be expected, I was at that moment trembling with fear and
excitement, I had lived too long in the East to forget that a bold
front and fearless manner command respect, if not fear. My words
and manner had the desired effect, for one, turning to my would-be
assailant, asked, “What are you doing? Have you forgotten our
master’s orders?” This was the second time something had been
said about “orders.” I put a few questions to my captors, but they
declined to reply to them, saying that I could speak to the Emirs
Hamza and Farag, and they hurried me towards them. The Emir,
whom later I knew to be Farag, asked my name, and what I wanted
in his country; then, turning to his followers without waiting for a
reply, called out, “This is the Pasha our master Wad en Nejoumi sent
us to capture; thanks be to God we have taken him unhurt.” The
latter remark was |28| made as a reproof to the man who had
threatened to strike me, as the incident had been reported, and also
as a warning to the others.
Taking me apart from the others, he continued, “I see you are
thirsty;” and, calling up one of his men, told him to pour some water
over some hard dry bread, and, handing it to me, said smilingly, “Eat
—it is not good for you to drink.” I divined his meaning. Had our
men not made that mad rush for the water, we might have had a
very different tale to tell, and who knows if, had we won the day and
reached Sheikh Saleh, the history of the Soudan for the past twelve
years might not have read differently? Mine would have done so.
CHAPTER III
IN THE HANDS OF THE DERVISHES

I was handed over to two men, who were held responsible for my
well-being; Hasseena and Elias were placed together in the charge
of others, and we were ordered to seat ourselves a little distance
away. The dervishes had with them military tents which must have
been taken at Khartoum, and one was soon pitched. Here the Emirs
and principal men met to hold a conference and inquiry. Darb es
Safai and others were taken up one by one, and the question put to
them direct, “Where are the rifles and the cartridges?” for no case
had, of course, been brought on with us to the wells. They denied
any knowledge of them; then replied Farag, “We will find them for
you, and show you how they are used.” My turn came, and in reply
to the usual question, I said that I knew nothing at all about them;
questioned still further, I admitted that I had seen a number of
boxes, but I could not pretend to know what was inside of them.
Asked then as to where they were, I said I could not tell—in the
desert somewhere; they had been thrown away, as the camels,
being tired and |30| thirsty, could not carry them any longer. Still
interrogated, I replied that the guide who had brought us here was
the first killed in the firing, and that I did not think any one else of
our caravan could find their way back to the place where the boxes
were left.
At this, rapid glances were passed from one to the other. Asked if
I was sure he was killed, I could only reply that my clerk had told me
so, that I had seen him fall, and indicated the place. Farag sent off a
man in that direction after whispering some instructions to him, and
during the few minutes he was away perfect silence reigned in the
tent, with the exception of the click, click of the beads of the Sibha
(rosary). When he returned, he whispered his reply to Farag. Two of
the Alighat Arabs who had joined us at Wadi Halfa were next
brought up and questioned; they did not give direct replies; they
were taken aside, but not far enough away to prevent my
overhearing part of what went on, when, as a result of promises and
then threats, I gathered that they undertook to lead the dervishes to
the spot where the cases had been left in the desert. It is quite
certain, from the questions put by the dervishes, that they were
ignorant of the precise spot where the baggage had been left, and it
in a measure confirmed the death of Hassan; but I have always had
a suspicion that the man shammed death and got away, to present
himself later on to Nejoumi. He might easily have mingled with the
dervishes and not been seen by us.
The sun had now set; the conference ended, and orders were
given by Farag for all to march back by |31| the route we had come,
the Alighat Arabs, with Amin between them, leading. We marched
for only an hour or so, for our camels, being tired and not having
been watered, gave trouble. A halt was called for the night, and
what water the dervishes had was partly distributed. By sunrise the
next day we were on the march again, twenty-five men, well
mounted, having been sent on in advance with the guides. All
Saleh’s men, wounded and sound, were compelled to walk, the
dervishes and their wounded riding on camels.
In the afternoon we reached the spot where we had left the four
men in charge of the baggage, to find them with their hands bound
behind them. The advance party had reached them about ten o’clock
in the morning, and had doubtless found them asleep, as no shots
had been fired. The men were not to be blamed in any way, and it
really mattered but little whether they were asleep or awake when
taken, with the odds against them. I had, on starting for the wells,
left them the little water I had saved; had they not had this, they
could not have slept.
In the same way that Saleh’s men had forgotten everything in that
mad rush for the water, so did the dervishes break loose, forget all
about their prisoners, and rush on the pile of cases. The ground was
soon littered with rifles, packets of ammunition, sugar, clothing,
food, and the hundred and one articles to be found in a trading
caravan, for the cases and bales of the Arabs who had joined us at
Wadi Halfa contained only merchandise. My mind was soon made
up; running towards the other prisoners with my |32| hunting-knife, I
thought that at all events the thongs of a few might be cut, and
making for the camels and scattering in different directions, a few
might have got clear. It was a mad idea, but it was something.
Before any part of my half-formed plan could be put into execution,
the guards were down on us. I was taken to the Emir, Said Wad
Farag, but I excused myself, saying that, being a medical man, I had
gone to see if I could attend to any of the wounded. Complimenting
me on my thought for the others, he recommended me to think of
myself, appropriated the knife the guards had found in my hand, and
told me he would let me know when to use it, warning me at the
same time not to attempt to speak to any of the other prisoners.
When the excitement over the loot had cooled down a little, a
camel was killed in honour of the occasion, and my servant
Hasseena was ordered to prepare some of the dishes. I was invited
to eat with the Emirs. Our first dish was the raw liver of the camel,
covered with salt and shetta—a sort of red pepper. I had seen this
dish being eaten, but had never partaken of it myself before. I had
two reasons for eating it now: first, I was hungry and thirsty;
secondly, one of the first signs of fear is a disinclination, I might say
inability, to swallow food, and fear of my captors was the last thing I
intended to exhibit. After the meal, my clothes were taken from me,
as they looked upon them as the dress of a kaffir, and I was turned
out into the night-air with my singlet, drawers, and socks as my
complete wardrobe. My turban and Baghdad |33| Kofiyeh were also
taken, so that I was bareheaded into the bargain.
When the dervishes had finished their food, and before they lay
down for the night, the Emir Farag sent for all the loot to be
collected and brought before his tent, when it would later on be
distributed according to the rules of the Beit-el-Mal (Treasury). This
institution and its working will be described later. Only a part of the
loot was collected, for the men, knowing from experience the
extraordinary manner in which loot “shrank” in bulk and numbers
when placed in the hands of the Emirs to be distributed according to
rule, concealed in the sand or beneath their jibbehs, whatever could
be hidden there. The pipes and tobacco found in the baggage were
burned, as their use was prohibited by the Mahdi. Amongst my
things was found my letter-wallet, and this was handed to the Emirs,
who afterwards sent for me and demanded to know the contents of
the letters. I replied that they were only business documents,
receipts for goods, and such like, but that if the wallet was handed
to me, I would translate each document. Being satisfied with this
answer, Farag kept the wallet. Complaining of my clothing having
been taken, he allowed me to have my flannel shirt, and gave me a
piece of rag as head-dress. In this guise, I lay down in the sand to
doze and wake the whole night through, conscious yet unconscious,
with the incidents of the last eighteen days chasing each other
through my brain.
The camp was astir long before sunrise, and by sunrise we were
on the move east towards El Kab, |34| which we reached about three
o’clock in the afternoon. The “wells,” at the part we arrived at, are
upon ascending ground; but the name “well” in this instance is a
misnomer. They are shallow basins scooped out with the hands or
any rough implement, the water being found about three feet below
the surface, shrubs indicating where to scoop. The camels were
watered and left to graze on the scanty herbage. Another camel was
killed to celebrate the capture of the caravan, and again I was
invited to take food with the Emirs. I was asked only the most
commonplace questions, but I could not get any reply to those I put,
except that Abdel Rahman Wad en Nejoumi would tell me all I
wished to know. While still with the Emirs, Farag called up his
followers again, and after congratulating them upon the capture of
the “English Pasha” and the caravan (though the Emir knew very
well who I was, from old days at Korti), he harangued them on the
advisability of obeying to the letter the orders of the Mahdi
transmitted to the Khaleefa, and by the Khaleefa to him, winding up
his oration with threats of punishment and imprisonment to any of
the faithful who robbed the Beit-el-Mal by concealing any of the loot,
after which he ordered every one to be searched again. I had many
opportunities later of seeing evidences of what the Emirs most relied
upon, in regard to the handing over of any loot—an exhortation to
their followers, and an appeal to their religious scruples—or threats
of punishment and imprisonment. Both went together, and were
administered in the order I have given them, and there was seldom
an |35| occasion when a search did not follow the appeal to their
honesty, and when punishment did not follow the search for
concealed loot.
Wad Farag dismissed me for the night, but I had hardly lain down
when two dervishes stole up, and asked me to describe all the
baggage I had with me. I said that a list would be found in my
wallet, which, if they would bring to me, would allow of me giving
them the required information. One left me, for the purpose, I
imagine, of asking the Emir for the wallet, but returned shortly
saying that I should have to remember, and that the list I then gave
would be compared with the list in the wallet. There was no list in
the wallet, but there were one or two letters I wished to extract. I
have thought since that, had I exhibited less anxiety to get hold of
the wallet itself, I might have induced them to hand over these
letters under one pretext or another. I soon discovered from their
questions that the dervishes were spying one upon the other, for
they asked me directly what were the contents of the bag taken
from Elias my clerk. I told them three hundred dollars, gold and
silver jewellery, and some jewellery which my servant Hasseena had
asked Elias to carry for her. Hasseena was sent for to describe her
jewellery. The information evidently gave these men huge
satisfaction, and taking Hasseena with them, they sent her back with
cooking utensils, food and firewood, and ordered her to prepare
food for me. Having had my food with the Emirs but a little time
before, I was at a loss to understand the meaning of this, but
learned later on |36| that it was to prevent any one else approaching
her for information. Whether these two men were, as they said, in
charge of the Beit-el-Mal, or whether, having seen any of the money
or jewellery, they wanted to get their share of it, I cannot say, but,
in the light of subsequent events, I should be inclined to believe the
latter.
When the food was ready, I invited my guards to eat it. I was
hoping that a full meal, especially as their fatigue was very evident,
would induce them to sleep, and feigning drowsiness myself, moved
off a few yards, and scooped out a sand bed. I was prepared to risk
anything for liberty; we were in the neighbourhood of the wells, and
might travel for days without being out of reach of water. Explaining
my plans to Hasseena, I told her, under the pretence of collecting
firewood, to try and get up to Amin and Elias, cut their thongs with
the large knife we had had to cut up the meat sent us for food, and
tell them to creep towards a small tree which I had noticed during
daylight, and await me there. Some camels with their feet fastened
by ropes were grazing there, and I believed that we might get away
unobserved, and get some hours’ start. But the guards of the
prisoners were not asleep; they were very much awake, searching
the prisoners for any valuables, an operation which was carried out
by each relief of guards, so that the sun rose with us still in the
hands of the dervishes.
THE KHALEEFA’S EUNUCHS AT ATTENTION.

It was just after sunrise that we moved off again; my guardian


must have been impressed with my importance, for he saddled the
camel for me himself, and |37| brought me a gourd of camel’s milk.
During this day’s journey, the Emir Mohammad Hamza, of the Jaalin
tribe, who was commanding a section of the dervishes, rode up to
me and inquired about my health—the usual form of salutation. He
told me not to be afraid of any harm coming to me, and then rode
off again. That evening we arrived at a small encampment of
dervishes close to some wells, when I was taken before another
Emir whom I was told was Makin en Nur, and who, from the
deference paid him by the others, was doubtless the chief. He, too,
put a few questions to me of the same commonplace nature as the
others, and waved his hand for me to be removed. On being sent for
again, I was accused of being a Government spy, and asked what I
had to say for myself. I replied, “I have told you the truth; what do
you want me to do now? tell you a lie, and say I am a spy? If I do
so you will kill me for saying I am one, and if I say again I am not ,
you will not believe me, and kill me just the same. I am not afraid of
you; do as you please.” When he questioned me again, I said, “I
refuse to answer any more questions.” My manner of speaking to
them caused no little surprise, as it was doubtless different to what
they had expected, and to what they had formerly experienced from
captives.
A young dervish was called in, and told to conduct me to a spot
removed from the other prisoners. As we walked along, the youth
said, “God is just; God is bounteous; please God to-morrow our eyes
shall be gladdened by seeing a white Kaffir yoked with |38| a shayba
to a black one.” This shayba is the forked limb of a tree; the fork is
placed on the neck pressing against the larynx, the stem projecting
before the wearer; the right wrist is then tightly bound to the stem
with thongs of fresh hide, which soon dry and “bite” the flesh, and
the ends of the fork drawn as closely together as possible, and
fastened with a cross-piece. It is a cruel instrument of torture, for
the arm must be kept extended to its utmost; to attempt to relieve
the tension means pressure on the larynx; but when yoked to
another man he throws pressure on you, and you on him. A prod in
the ribs under the arm of either victim, with sword or rifle, affords
endless amusement to their tormentors in the victims’ gapes and
grimaces as they gasp for breath; but the captor’s cup of happiness
is filled when an extra hard prod knocks one man off his feet, and
the poor wretches are only helped up again when they are almost
choking.
Irritated beyond endurance by the youth’s jibes and jests, and
hoping to put an end to everything at once, I threw my weight and
strength into one blow—and I was a powerful man then—and felled
him senseless. Taking his rifle, I strode back to the tent, almost
foaming with rage, and entered; my eyes must have been blazing; I
glared from one to the other, wondering whether to fire the one shot
and then start “clubbing” until I was cut down. Hamza was the first
to speak, and jumping up, held up his hand, saying, “Istanna”
(wait). I hurriedly related what had occurred, and said what I
intended to do. Hamza |39| came to me, saying, “La, la, la (no, no,
no), there must be a mistake. You are not to be put in a shayba; our
orders are to deliver you alive and well.” Then turning to the others,
he continued, “Hand this man over to me; I shall deliver him alive
and well to Wad en Nejoumi; I hold myself responsible for him.”
Some demur was made, when, lowering the rifle, I placed the butt
on the ground, rested my chin on the muzzle, and addressing myself
to all, said that unless I was left in Hamza’s charge I should press
the trigger—on which my great toe was then resting. Hamza again
pressed his point, and said, “If you do not agree, and this man does
any harm to himself, I declare myself free of blame and
responsibility. I have heard of him; he will do as he says.” The effect
of the words was magical. “Take him away—keep him; do what you
wish with him; never let him come near us again—never. Never let
him look upon us with his eyes.”*
* The Soudanese, indeed all Easterns, have a great horror of the “Evil Eye;”
and the grey and grey-blue eyes of Europeans in anger, or even in a fixed
stare, as I learned later, strike fear, if not terror, into the hearts of most.
Hamza, turning to me, said, “You must know now that our master,
Wad en Nejoumi, knew of your coming, and sent us to conduct you
to him. His orders were that you should be treated well; he wishes
to speak to you. I will give you security until Dongola, where he is
waiting for you. I do not know what he will do with you; maybe he
will kill you—I cannot say; but, for myself, I promise you will arrive
in Dongola alive. If anything happens to you, the Emir Wad en
Nejoumi will kill me. Will you |40| promise that you will leave yourself
in my hands, will not try to kill yourself, or attempt to escape?” I
gave my promise, upon which Hamza said, “Leave this man to me.”
The conversation which took place between us was of much
longer duration than the above would appear to indicate, but I
cannot pretend to remember all that was said after the twelve years’
interval; the above is the gist of it. I handed Hamza the rifle, and he,
taking me by the hand in the Bedawi manner, led me out of the tent,
and towards his section of the dervishes. On the way, in a few
hurried whispers, he gave me to understand that he was really still a
friend of the Government, and that I might trust implicitly in him. On
reaching his people, he called four men to attend to me, and
sending for Hasseena, told her to prepare such food as I was
accustomed to. Hasseena came in rags; her clothes, like mine, had
been taken from her. He ordered one of her dresses to be returned,
and on my showing him how the skin had been burned off my back
and shoulders with the sun, he ordered that I, too, should be
supplied with more clothing.
CHAPTER IV
A R R I VA L I N D O N G O LA

Instead of our starting off the next morning at sunrise, a sort of


“fantasia” was held. This consisted of men riding up and down the
camp with mimic combats between individuals—a sort of circus
display. Stricter watch was placed over me, and my guards warned
against allowing me to hold conversation with any one. At sunset we
were off again, and the following day halted in the desert, El Ordeh
(Dongola) being then, I was told, a few hours’ distant. We rested
probably a couple of hours, and marched until evening, but had not
yet sighted Dongola. A final search was made for concealed loot,
and a piece of my leather bag having been discovered on one of the
men, he was flogged, and, offering to confess, confessed that he
had found the bag empty on the ground. His clothing, and that of
his section was searched, and resulted in the discovery of seventeen
of my Turkish dollars; a further application of the courbag resulted in
the discovery of the remainder of the three hundred dollars, and a
third one, of the greater part of the jewellery. The flogging and
searching delayed us, |42| and instead of travelling that night, we
only got away in the morning, arriving within sight of Dongola at
noon, when men were sent in to report our arrival.
While awaiting the return of the messengers, discipline—what
there was of it—was relaxed, and the camp given over to jubilations.
The attentions bestowed upon me were not pleasant; both by words
and actions I was given to understand what the men hoped and
expected would be my fate. A respite was granted, when the man

You might also like